2011-12-13 125 views
2

我加入了一個過去兩個月一直在進行的rails項目。我看到開發人員正在修改現有遷移以更改列類型/名稱?當我運行遷移時,沒有任何反應,並且出現像隨機錯誤,找不到方法。當我解散並檢查數據庫時,發現字段名稱不同,這就是錯誤出現的原因。是否可以修改遷移

根據我對數據庫每次修改的理解,我們需要創建新的遷移。

修改現有遷移的行爲是否可以接受?

回答

4

一般來說,一旦您簽入遷移,它不應該被修改。對於我參與的一個項目,我們定期重置數據庫,因此人們會不時修改遷移,而不是創建新項目,但這不是我喜歡的做法。

因此,如果您希望默認的Rails遷移行爲正常工作,請不要更改某人可能已經使用的遷移。但是,如果您在解決默認行爲方面沒有問題,則無關緊要。注意:如果您正在運行生產遷移以使數據庫保持最新狀態,則永遠不要更改已在生產環境中運行的遷移,這一點很重要!

0

這是所有關於良好的風格。當然,你可以改變遷移,但這是不好的風格。根據指導方針,您應該爲每次更改都進行新的遷移。

0

在我看來這是不可接受的。這裏有一些原因何時以及爲什麼它可以被接受或者也不是:

  • 我正在爲自己開發2個rails應用程序,而且我是唯一的開發人員。當我在遷移中發生錯誤時,我有時只是修復它,回滾遷移並在修復錯誤後重做它。這隻適用於因爲
    • 我知道我是唯一的。
    • 我在錯誤的改變後立即執行
    • 我知道如何以及何時首先回滾然後重做它。
  • 在所有其他情況下,這是不能接受:
    • 多於一個開發者的更多。
    • 由Subversion,Git等版本控制系統集成...
    • 獨立開發在不同的房間或甚至位置完成。

所以我覺得你有困難的工作去改變別人的行爲。祝你好運!

相關問題