本地开发中的数据库和线上发布的数据库是不一样的,每进行一个线上版本的更新,很可能也涉及大量数据库的改动,那么这些数据库的改动在laravel中可以使用数据库迁移来处理。
比如我想创建一张flights数据表
执行php artisan make:migration create_flights_table命令就能自动生成迁移
如上图所示,相当方便,然后修改下数据库引擎为InnoDB,增加表注释,再新增name和airline两个字符串的字段,代码如下
$table->engine('InnoDB'); $table->comment('航班'); $table->string('name'); $table->string('airline');
在实际开发中,一个版本的开发往往不止创建一张数据表。
如果这时候想要查看所有迁移的状态,执行以下命令
php artisan migrate:status
如果想看看迁移将要执行的SQL语句,执行以下命令
php artisan migrate --pretend
这个命令用于创建数据表还行,用在重命名列名就会报错,用在别的地方报错就不用执行这个命令,跳过这个命令执行下一个命令就好。
最后将未完成的迁移执行,这样数据库操作才最终在数据库中产生效果