想把数据库回滚到上一次执行 migrate 之前的状态,可以使用 migrate:rollback 命令 ...
php artisan migrate:rollback
提示,回滚了 add_movie_title_to_movies_table 这个 migration ... 打开数据库 ...
movies 数据表 ... 添加的 movie_title 这个字段就会被移除掉了 ...
reset
如果我们想恢复所有的 migrate ,可以使用 migrate:reset 命令 ...
php artisan migrate:reset
回到数据库 ... 添加的 movies 还有 reviews 这两个数据表已经被删除掉了 .. 因为我们执行了 migrate:reset 命令 ... 也就是会去执行在所有的 migration 里面设置的 down 方法里的东西。
要把数据库恢复过来的话,再去运行一下 migrate 命令 ..
php artisan migrate
因为我们上次重置了所有的 migration ... 所以这次会执行所有的 migration ...
注意如果现在再去执行 migrate:rollback 命令 ... 会回滚所有这次 migrate 执行的 migration ...
refresh
migrate:refresh 这个命令会刷新 migration ... 也就是它会先回滚所有的 migration ... 然后再去 migrate 一下 ...
我们先去修改一下地方 ... 打开 add_movie_title_to_movies_table 这个 migration ... 在添加 movie_title 的时候,使用了 string 方法... 在这里,可以去指定一下字段的长度 ...
比如我们要让电影标题的长度不能超过 150 个字符 ... 输入一个逗号 ... 然后再指定它的长度 ...
$table->string('movie_title', 150);
回到命令行 ... 用 migrate:refresh ,去刷新一下 ...
php artisan migrate:refresh
你会看到,这条命令会先去 rollback 所有的 migration ... 然后重新再 migrate 一下 ..
打开数据库 ... movies 数据表 ...
你会发现, movie_title 的长度,会变成 150 ..