Laravel 的数据库迁移的方法(3)

在使用字段更新,重命名字段,字段移除之前,请务必在你的 composer.json文件require键名中添加< "doctrine/dbal": "^2.5">值。然后composer update进行更新或

composer require doctrine/dbal

创建索引

$table->string('email')->unique();

Command Description
$table->primary('id');   加入主键。  
$table->primary(['first', 'last']);   加入复合键。  
$table->unique('email');   加入唯一索引。  
$table->unique('state', 'my_index_name');   自定义索引名称。  
$table->unique(['first', 'last']);   加入复合唯一键。  
$table->index('state');   加入基本索引。  

开启和关闭外键约束

Schema::enableForeignKeyConstraints(); Schema::disableForeignKeyConstraints();

运行迁移

php artisan migrate

在线上环境强制执行迁移

php artisan migrate --force

回滚迁移

若要回滚最后一次迁移,则可以使用 rollback 命令。此命令是对上一次执行的「批量」迁移回滚,其中可能包括多个迁移文件:

php artisan migrate:rollback

在 rollback 命令后加上 step 参数,你可以限制回滚迁移的个数。例如,下面的命令将会回滚最后的 5 个迁移。

php artisan migrate:rollback --step=5

migrate:reset 命令可以回滚应用程序中的所有迁移:

php artisan migrate:reset

使用单个命令来执行回滚或迁移

migrate:refresh 命令不仅会回滚数据库的所有迁移还会接着运行 migrate 命令。所以此命令可以有效的重新创建整个数据库:

php artisan migrate:refresh // 刷新数据库结构并执行数据填充 php artisan migrate:refresh --seed

使用 refresh 命令并加上 step 参数,你也可以限制执行回滚和再迁移的个数。比如,下面的命令会回滚并再迁移最后的 5 个迁移:

php artisan migrate:refresh --step=5

无法生成迁移文件

在 Laravel 项目中,由于测试,有时候用 PHP artisan make:migration create_xxx_table 创建数据库迁移。如果把创建的迁移文件 database/migrations/2017_07_30_133748_create_xxx_table.php 文件给删除了,再次执行 php artisan make:migration create_xxx_table 会报错:

复制代码 代码如下:


[ErrorException]                                                                                                                                         
 include(E:\laraver\vendor\composer/../../database/migrations/2017_07_30_133748_create_users_table.php): failed to open stream: No such file or directory 

重新运行 composer update 又可以执行上面的命令了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6925e1f2dc52790549f95e10baa52a83.html