回滚特定的迁移?

时间:2016-01-05 22:58:32

标签: php laravel laravel-5

是否可以在Laravel中回滚特定的迁移?

例如:

如果我进行四次迁移,如M1,M2,M3和M4以及后来我决定在M2中添加更多字段。我可以直接回滚到M2吗?或者只是直接编辑现有的M2迁移文件?

1 个答案:

答案 0 :(得分:2)

最佳做法是@Farkie的评论,创建一个新的迁移。 但是如果你真的想要破解,那么Laravel回滚迁移的方式是这样的:在迁移表上有一个名为' batch'因此,当执行回滚时,将回滚具有最大批次编号的所有记录,并且将从迁移表中删除回滚迁移的记录。

破解的方法可能是:

如果迁移表如下:

migration   |   batch
===========================
M1               |    1
M2               |    1
M3               |    1
M4               |    1

编辑表格,使其看起来像

migration   |   batch
===========================
M1               |    1
M2               |    2
M3               |    2
M4               |    2

因此,当回滚时,它将回滚M2,M3和M4,进行更改并再次迁移