如何运行Laravel的工匠一步一步迁移?

hog*_*gan 6 laravel-4 artisan-migrate

我已经阅读了运行一个特定的laravel 4迁移(单个文件),但这并没有给我答案.

我想知道是否有一种方法来运行命令,以便它只执行下一个命令,而这只是一次迁移.

我的Migrate-Folder中有10个文件.其中7个已经迁移.现在我发现当我创建3个新的并运行命令时,它们都被执行了.

问题是,在数据库"select*from migrations"中,它们显示在一个批处理中,而不是单独存在.这意味着如果我只想回滚一步,我们将回到步骤7而不是9 - 我想要的.

这有时令人困惑,因为我想一次回滚一步而不回滚一批的所有步骤.

我知道我可以将文件移动到另一个文件夹中,只留下一个文件来运行迁移.然后移动下一个并再次迁移,但这非常不方便 - 如果偶然我移动并在步骤9之前迁移步骤10会发生什么.

有人知道答案吗?

Rob*_*rks 9

在laravel 5.4中你可以:php artisan migrate --step

当您执行这样的命令时,您可以使用默认的"php artisan migrate:rollback"单独回滚每个迁移,而不指定要回滚的步骤数.


cee*_*yoz -1

问题在于,在数据库“从迁移中选择*”中,它们显示在一批中,而不是单独的一批中。这意味着,如果我只想回滚一步,我们会回到步骤 7,而不是我想要的步骤 9。

这不是非常理想,但是在运行它们之后,您可以将batch数据库表中每个迁移的值调整为单独的数字。php artisan migrate:rollback获取MAX()批次值并回滚其所有迁移。