構建Web應用程序時,遷移文件通常很常見嗎?我似乎在添加一長串遷移文件,因爲我一直在忘記或不斷考慮爲已遷移的數據庫表添加額外的列。Ruby on Rails:遷移文件的長列表,常見?
回答
IMO,如果你正確地進行了遷移,它應該有一個很長的遷移列表。考慮一下你必須通過遷移來做的每一點改變。正如您所說的,正確的方法是在需要更改表格時添加新的遷移。
所以,正如我所提到的,我相信有越來越多的遷移意味着你做的是正確的。 (表兄弟姐妹很多時候你需要改動到現有的表,你簡單的不能刪除該表的時間重新創建)
不過話說回來,它總是一個好主意,運行rake db:migrate
飄飛(對於隔離數據庫)只是爲了確保你的遷移工作作爲一個組
有一長串遷移文件是正常的。這是軌道的最佳功能之一。把它們想象成層疊(像洋蔥一樣),然後堆疊在一起。如果你添加一個新的列或表,然後你決定不再需要它,你可以回滾(剝離)最新的變化。只要你有移植文件,你可以輕鬆地來回移動(不建議移動太多,但你明白了)。請記住,除非您進行回滾,否則請勿在遷移文件被刪除後刪除它們。當您回滾並刪除遷移文件時,請確保您處於正確的層(回滾點)。
爲什麼?因爲例如當某人克隆您的應用程序並運行您的遷移文件時,它會從頭到尾遍歷所有遷移文件。如果中間的東西被搞亂或刪除,您將無法創建數據庫,因爲它會經歷所有步驟。希望能幫助到你。
這可能是壞習慣,但我使用rake db:migrate VERSION=0
向下遷移,然後更改具有(例如)用戶的相應遷移,最後使用rake db:migrate
遷移數據庫。這樣我就少了一團亂麻,並且確切地知道哪個遷移對什麼模型起什麼作用。它更乾淨,但我想這種技術只能在webapp的開始時使用。 希望這有助於。
還有一點要注意的,從護欄文檔
如果需要其他系統上創建應用程序數據庫,您應該使用DB:架構:負載,沒有運行一切從零開始的遷移。後者是一種有缺陷且不可持續的方法(您將積累的遷移越多,運行速度越慢,發生問題的可能性也越大)。
強烈建議您將此文件(schema.rb)檢入您的版本控制系統。
- 1. Ruby On Rails遷移
- 2. Ruby on Rails遷移非常緩慢
- 3. Ruby on Rails的:耙遷移幫助
- 4. Ruby on Rails的遷移錯誤
- 5. Ruby on Rails的遷移問題
- 6. Ruby on Rails的數據庫遷移
- 7. Ruby on Rails的 - 反向add_column,add_index遷移
- 8. Ruby-on-rails中的遷移問題
- 9. Ruby on rails遷移不起作用
- 10. ruby on rails Heroku遷移錯誤
- 11. Ruby on Rails:模型,遷移和概述
- 12. 配置和運行Ruby-On-Rails遷移
- 13. 在Ruby on Rails中使用遷移
- 14. 防止遷移回滾Ruby on Rails
- 15. Ruby on Rails遷移/模型刪除
- 16. 在Ruby on Rails中遷移設計
- 17. 從ASP.NET遷移到Ruby on Rails
- 18. 如何遷移類似於Ruby on Rails遷移的Django模型?
- 19. Ruby on Rails。在子文件夾中組織常見部分
- 20. 的意見,Ruby on Rails的
- 21. Ruby on Rails的5.0升級與遷移用戶表衝突
- 22. Ruby on Rails的Rspec的遷移數據庫:插件
- 23. Ruby on Rails的遷移和移動向上和向下基礎
- 24. 通過遷移在ruby-on-rails 3中創建表?
- 25. Ruby on Rails遷移,將表更改爲MyISAM
- 26. 如何在ruby上創建3表連接遷移on rails
- 27. Ruby on Rails排序列表
- 28. Rails遷移未生成遷移文件
- 29. Ruby on Rails通過遷移文件更新數據庫中的元素
- 30. Ruby on Rails的:用戶模型關聯的應用和遷移