2010-07-11 297 views
2

據我所知,遷移的重點在於,您可以在開發的最後階段將數據庫恢復到已知狀態。滾動遷移?

現在我仍然在「充實」我的第一個Rails應用程序,我想知道是否可以將我的遷移集中到更大的應用程序而不是幾十個更改。

回答

4

遷移的關鍵在於您基本上擁有數據庫更改的日誌,因此其他開發人員可以知道進行了哪些更改或確保您的生產環境獲得了與開發過程中所做的更改相同的更改。

至於你的問題:當然。如果您創建了新模型,並在幾分鐘後決定「此列可能只是字符串而不是文本」,請回滾您的遷移,然後更改列,然後再次遷移。無需創建新的遷移。

除非您已經將以前的遷移遷移到其他開發人員可能已獲取的源代碼管理,或者您已經在生產服務器上應用遷移。那麼你應該使用新的遷移。

1

作爲rspeicher的補充,我限制了遷移是否已經發布的限制,而不是它是否已經提供給其他開發人員。如果它仍然是預發行版,那麼可以通過使用所使用的SCM的後取指針掛鉤來向開發團隊通知任何需要爲主代碼存儲庫的任何更新運行遷移的需要。任何配置管理更改都是如此,而不僅僅是遷移。例如,更改initializers文件夾中的某些內容的實現可能對開發模式下運行的腳本/服務器實例沒有影響。這對於絕大多數技術團隊以及持續集成的一些配置來說,最終是一個必要的機制。或者,您需要團隊中良好的溝通渠道來確保每個人都知道配置更改和重新啓動是必要的。