Laravel 迁移新命令:Fresh(Laravel 5.5 新功能早知道)
用过 migrate:refresh
命令的人就知道,它不仅会回滚数据库的所有迁移,还会接着运行 migrate
命令。这对程序早期开发过程中对重建数据库有需求的人能起到很大的帮助。
Laravel 5.5 对此作了改进,创建了一个新的命令:migrate:fresh
。 refresh 和 fresh 之间的区别在于,fresh 是跳过了所有的 down() 方法或者回滚,直接删除了所有的表,再运行 up() 方法重建数据库。
直接通过两者的命令运行结果,区别便清晰可见:
$ php artisan migrate:refresh
Rolling back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolling back: 2014_10_12_000000_create_users_table
Rolled back: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
现在,用 fresh 命令:
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
当然比起跟新命令作对比,refresh 在最新的 5.4.17 版本中还是很有用的。因为这个版本中 迁移 up() 和 down() 是可选的。 你把 down() 去掉也还是可以快速重置本地数据库的。
新的迁移命令 migrate:fresh
将和计划于今年 7 月或 8 月发布的 Laravel 5.5 。
更新:当然如果你现在就想利用这条新命令,请查看 Spatie 的这个 包。
更多资讯可前往 Laravel China 资讯站 查看~
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
我们现在的项目开发,自己实现了这个功能
5.5 出了以后就省事了
效率更高了。
:laughing: 终于有这功能了。
我之前还专程为 PHPHub 开发了一个 类似的命令
@Summer 可惜了,应该给 laravel 提 PR 的
新项目刚好处在LTS发布之前。。。很尴尬啊
之前都是手动删除所有表,然后执行 php artisan migrate。
@zhuzhichao 我也是~
这个命令会不会很危险,一下子,什么数据都没有了
5.5快到来!~