欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

laravel之Migration的操作 唯一 unique

migration是数据库版本控制工具 migration不同sql一样运行在mysql 其实通过程序执行 更好的控制sql 可以回滚sql 防止误操作 解决了团队合作数据库结构不统一的原因 导致的数据库无法恢复。数据更加安全功能更加强大。 
首先需要检查数据库是否配置正确:

检查根目录的.env文件

clipboard.png

创建表程序

//查看框架版本
php artisan --version
//创建表 
php artisan make:migration create_table_users --create=users;
//查看创建表语句 
php artisan migrate --pretend 
//回滚操作
php artisan migrate:rollback

表的操作 
创建表 php artisan make:migration create_table_users --create=users;

表单字段的设计 :

Schema::create('users', function (Blueprint $table) {
       //调用相关的方法  即可自动的创建字段 更加灵活更加方便 
            $table->increments('id');
            $table->string('username')->unique();
            $table->string('email')->unique()->nullable();
          //手机考虑到无符号 与区别 与未来的发展趋势 考虑用string  
            $table->string('phone')->unique()->nullable();
            $table->text('avatar_url')->nullable();
            //$table->string('country_code')->default('+86');
            $table->string('password');
            $table->text('intro')->nullable();
            $table->timestamps();
        });

创建完可以使用 php artisan migrate --pretend查看数据表创建语句

clipboard.png

来自  https://segmentfault.com/a/1190000008659390


laravel 修改migration属性

在laravel5.1之前,如果你用migration为表结构设定了一些属性,之后如果再想修改的话,那就费劲了,需要rollback重新来过。而这种修改在设计中是经常会遇到的,特别是当你的表中已经有一堆测试数据的时候,你不会想轻易地rollback。 
laravel5.1提供了修改的功能,不过需要先装一个包“doctrin e/dbal”. 
之后你就可以新建一个migration,然后直接修改之前的内容了,只需要用change()函数即可,比如:

class ModifyUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //
        Schema::table('users', function (Blueprint $table) {
            //
            $table->string('phone',12)->unique()->nullable()->change();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }
}

结果这也是一个坑,每次migrate的时候,都提示属性重复,擦 
最后解决方法还是rollback,然后重新倒入sql,再migrate。好在,直接在以前的migrate中修改属性也可以生效。

来自 https://blog.csdn.net/dskwe/article/details/50500794

普通分类: