Laravel5.7 数据库操作迁移的实现方法(2)
注:如果你正在使用 Homestead 虚拟机,需要在虚拟机中运行上面这条命令。
在生产环境中强制运行迁移
有些迁移操作是毁灭性的,这意味着它们可能造成数据的丢失,为了避免在生产环境数据库中运行这些命令,你将会在运行这些命令之前被提示并确认。想要强制运行这些命令而不被提示,可以使用 --force 标记:
php artisan migrate --force
回滚迁移
想要回滚最新的一次迁移”操作“,可以使用 rollback 命令,注意这将会回滚最后一批运行的迁移,可能包含多个迁移文件:
php artisan migrate:rollback
你也可以通过 rollback 命令上提供的 step 选项来回滚指定数目的迁移,例如,下面的命令将会回滚最后五条迁移:
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 选项,例如,下面的命令将会回滚或重建最后五条迁移:
php artisan migrate:refresh --step=5
删除所有表 & 迁移
migrate:fresh 命令将会先从数据库中删除所有表然后执行 migrate 命令:
php artisan migrate:fresh php artisan migrate:fresh --seed
数据表
创建表
使用 Schema 门面上的 create 方法来创建新的数据表。create 方法接收两个参数,第一个是表名,第二个是获取用于定义新表的 Blueprint 对象的闭包:
Schema::create('users', function ($table) { $table->increments('id'); });
当然,创建新表的时候,可以使用 Schema 构建器中的任意列方法来定义数据表的列。
检查表/列是否存在
你可以轻松地使用 hasTable 和 hasColumn 方法检查表或列是否存在:
if (Schema::hasTable('users')) { // } if (Schema::hasColumn('users', 'email')) { // }
数据库连接 & 表选项