Laravel 迁移新命令:Fresh(Laravel 5.5 新功能早知道)

file
用过 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 资讯站 查看~

参考链接:https://laravel-news.com/migrate-fresh

本作品采用《CC 协议》,转载必须注明作者和本文链接
Stay Hungry, Stay Foolish.
本帖由 Summer 于 7年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10
monkey

我们现在的项目开发,自己实现了这个功能

5.5 出了以后就省事了

7年前 评论
lijinma

效率更高了。

7年前 评论

:laughing: 终于有这功能了。

7年前 评论
Summer

我之前还专程为 PHPHub 开发了一个 类似的命令

7年前 评论

@Summer 可惜了,应该给 laravel 提 PR 的

7年前 评论
幽弥狂

新项目刚好处在LTS发布之前。。。很尴尬啊

7年前 评论

之前都是手动删除所有表,然后执行 php artisan migrate。

7年前 评论

这个命令会不会很危险,一下子,什么数据都没有了

7年前 评论

5.5快到来!~

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!