2016-01-05 88 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,進行更改並再次遷移