我想要的

仅回退:

回滚:2015_05_15_195423_alter_table_web_directories


我跑

PHP artisan migrate:rollback,我的3个迁移都在回滚。

Rolled back: 2015_05_15_195423_alter_table_web_directories
Rolled back: 2015_05_13_135240_create_web_directories_table
Rolled back: 2015_05_13_134411_create_contacts_table

我删除

我的web_directory和我的联系人表都是无意的。我不希望发生这种情况,如果我只能回滚特定的一个,这种灾难就永远不会发生。


当前回答

逐个迁移表。

将需要回退的迁移批号修改为最高。

运行迁移:回滚。

这可能不是处理大型项目的最佳方式。

其他回答

正如Laravel手册中所述,您可以使用——step选项回滚特定数量的迁移

php artisan migrate:rollback --step=5

回退一步。本机。

php artisan migrate:rollback --step=1

回滚两步。本机。

php artisan migrate:rollback --step=2

你可以使用

php artisan migrate:rollback --path=/database/migrations/timestamp_filename.php

这将删除特定的迁移。如果文件有外键依赖,我希望你使用drop方法。对于这些情况,请尝试创建一个新的迁移,并在需要时删除foreign。

最好使用刷新迁移

您可以通过回滚和重新迁移有限数量的迁移 为刷新命令提供step选项。例如, 以下命令将回滚并重新迁移最后两次迁移:

php artisan migrate:refresh --step=2

否则使用回滚迁移

通过提供该步骤,可以回滚有限数量的迁移 选项。例如,下面的命令 将回滚最后三次迁移:

php artisan migrate:rollback --step=3

有关迁移的详细信息,请参见

只回滚特定的迁移非常容易。 由于命令php artisan migrate:rollback,撤销上次数据库迁移, 迁移执行的顺序存储在迁移表中的批处理字段中。

您可以编辑要回滚的迁移的批处理值,并将其设置为较高的值。 然后你可以用一个简单的回滚迁移:

php artisan migrate:rollback

在编辑相同的迁移之后,可以使用简单的

php artisan migrate

注意:如果两个或多个迁移具有相同的更高值,它们将同时回滚。