2016-01-05 85 views
2

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

例如:

如果我提出四个迁移像M1,M2,M3和M4,后来我决定在M2添加更多的字段。我可以直接回滚到M2吗?或者直接简单地编辑现有的M2迁移文件?

+3

迁移5应添加新列 – Farkie

+0

我同意@Farkie,最好创建一个新的迁移,它将改变你在M2上创建的表,添加新的字段 –

回答

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,进行更改并再次迁移