是否可以在Laravel中回滚特定的迁移?
例如:
如果我进行四次迁移,如M1,M2,M3和M4以及后来我决定在M2中添加更多字段。我可以直接回滚到M2吗?或者只是直接编辑现有的M2迁移文件?
答案 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,进行更改并再次迁移