Laravel5 数据库迁移笔记

  • 创建迁移文件

    命令: make:migration

    举例: php artisan make:migration create_users_table --create=users

    生成位置: 项目/database/migrations/下 文件名已时间开头,后面是自己创建迁移文件名字.

    –creat 指定数据库中表的名字

  • 编辑迁移文件

    打开迁移文件:

    
       use Illuminate\Support\Facades\Schema;
       use Illuminate\Database\Schema\Blueprint;
       use Illuminate\Database\Migrations\Migration;
    
       class CreateUsersTable extends Migration
       {
           /**
            * Run the migrations.
            *
            * @return void
            */
           public function up()
           {
               Schema::create('users', function (Blueprint $table) {
                   $table->bigIncrements('id');
                   $table->string('name');
                   $table->string('email')->unique();
                   $table->timestamp('email_verified_at')->nullable();
                   $table->string('password');
                   $table->rememberToken();
                   $table->timestamps();
               });
           }
    
           /**
            * Reverse the migrations.
            *
            * @return void
            */
           public function down()
           {
               Schema::dropIfExists('users');
           }
       }
    
文件中有两个方法,up/down . 可以理解为创建执行时up方法,rollback时候是执行down方法.

up方法中:
    创建了7个字段,表明为 users.
    
    创建字段操作 `$table->` 后面加上字段类型 `string` ,指定字段名称`('name')` 字段被指 `->comment('名子')`; 
    
    具体每个字段类型,以及其他属性定义,请查询手册.
    


* ### 执行迁移文件

  这个迁移文件是创建表,所以down是删除表.也就是当我们执行 `php artisan migrate:rollback` 回滚到上一步就是把这表删除(前提创建之后).

  执行命令: `php artisan migrate` 执行迁移文件创建表单.
  
  如果我们后悔创建:可以执行回滚. `php artisan migrate:rollback `  --step 指定回滚次数 `php artisan migrate:rollback --step=2` 执行回滚迁移2次钱.
  
  `php artisan migrate:reset` 回滚所有迁移
  
  `php artisan migrate:fresh` 删除所有回滚
  
  
* ### 为前迁移文件修改字段,改名.
当我们上面的文件执行后,需要增加一个字段,那么就需要新建一个迁移文件.不要直接操作数据库.

    `php artisan make:migration add_id_to_users_table --table=users` 
    
    这里为users表新增身份证字段.
    
    打开文件 新建身份证id列. 
    
    之后我们执行迁移文件.成功后就能看到新得ID字段已经出现.对于编辑和修改都可以.

    `$table->renameColumn('ID', 'id')` 改名id
    
    对应dorop 也需要dropColumn 此字段.
    
    最后执行此迁移文件.