首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel Migrate 中的 Fresh 和 Refresh 命令

Laravel Migrate 中的 Fresh 和 Refresh 命令

作者头像
小李刀刀
发布2018-03-02 16:51:59
3.5K0
发布2018-03-02 16:51:59
举报
文章被收录于专栏:PHP 开发PHP 开发

任何一位 Laravel 的开发者都肯定对于 migrate:refresh 这个命令很熟悉了,特别是首次发布上线前,随着开发进行,对 migration 文件不断做修改,就会一次又一次地运行这个命令来重建数据库。

而在 Laravel 5.5 版本中,对这个命令又进行了一次增强。或者说增加了一个相似但又有所区别的命令:migrate:fresh.

refreshfresh 命令的区别在于:fresh 命令不按照 migrations 表里的记录逐步回滚,而是通过删除数据库里所有表来跳过还原和回滚的步骤,然后在空数据库上执行每个 migration 文件里的 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

上面是 refresh 的输出,可以看到前面先进行了两次 rollback 操作,然后再执行了两次 migrate 操作。

接下来再看看 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

注意输出的第一行,直接进行了 drop all tables 的操作。

关于这个命令的更多信息,你也可以查看 Taylor 写的这篇文章

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档