简介

生成应用程序的「数据结构」,就像数据库的版本控制器,在团队开发中更容易修改和共享数据库结构。

创建迁移

使用 artisan 命令 make:migration 来创建迁移:

  1. php artisan make:migration create_users_table
  2. 其中:users_table 为生成的数据表名,按需定义

新创建的迁移文件在 database / migrations 文件夹中,以 创建时间开头的文件,用以确认迁移的顺序。

--table--create 用于确定表的名称以及是否在迁移中创建新的数据表,其中 --create 可以填充默认字段。

  1. php artisan make:migration create_users_table --create=users
  2. php artisan make:migration create_users_table --table=users

编写迁移类

迁移类 包含 updownup 方法用于新增 数据库的数据表,字段 或 索引; down 方法的功能 应该 与 up 执行相反的操作 ,所以要添加字段,就 操作 up 方法。

字段

Schema 门面中可以使用 table 方法来更新已存在的数据表。和 create 方法一样, table 方法接受两个参数:一个是数据表的名字,另一个是 Closure 可以在新增一个数据表中字段的时候接受 Blueprint 对象:

  1. public function up()
  2. {
  3. Schema::create('admin_users', function (Blueprint $table) {
  4. $table->bigIncrements('id');
  5. $table->timestamps();
  6. });
  7. }

常用功能

  1. 唯一性 = unique()

常用字段

  1. 软删除字段 = $table->softDeletesTz(0);

具体内容查看: 手册 - 数据库迁移

执行迁移

使用 artisan 命令 php artisan migrate 来执行迁移:

  1. php artisan migrate

回滚迁移(后退)

rollback 命令回滚到最后一次操作,也就是最后一批的迁移,可能包含多个迁移文件:

  1. php artisan migrate:rollback

加上 step 参数可以指定回滚迁移的数量,如将回滚最后 5 个迁移:

  1. php artisan migrate:rollback --step=5

回滚所有的迁移
使用 migrate:reset 命令将滚回所有的迁移:

  1. php artisan migrate:reset

删除所的数据表和迁移

使用 migrate:fresh 命令将会删除所有数据表关在之后执行 migrate 命令

  1. php artisan migrate:fresh