自我的Rails應用開始以來,我創建了很多遷移項目。其中一些僅用於測試目的。我現在有很多完全沒用的遷移(例如:在遷移中創建一個表並將其放入下一個表中)。刪除過去的軌道遷移
由於schema.rb獲取更新一次db:migrate運行,是否可以刪除所有的遷移並從schema.rb的實際內容開始?
自我的Rails應用開始以來,我創建了很多遷移項目。其中一些僅用於測試目的。我現在有很多完全沒用的遷移(例如:在遷移中創建一個表並將其放入下一個表中)。刪除過去的軌道遷移
由於schema.rb獲取更新一次db:migrate運行,是否可以刪除所有的遷移並從schema.rb的實際內容開始?
是的,你可以(也可能應該)刪除舊的遷移。由於你的模型代碼將取決於你的模式的更新版本,所以你的舊遷移可能會失效。
因此,通過各種手段刪除遷移(你有他們的源代碼控制下,對吧?),並使用
rake db:schema:load
如果你需要初始化一個新的數據庫。
UPDATE:Rails的指導現在有類似的東西說這個:http://guides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you
一個更好的方式來做到這一點是做到以下幾點...
當你到達你的項目的一個里程碑,並且您確定不希望在該版本的數據庫下遷移,您可以用一個遷移文件替換大量的遷移文件,然後您可以將其用作捆綁啓動的新「初始」遷移到目前爲止所做的一切。
之後:繼續在項目中使用遷移!
絕不要手動編輯您的schema.rb文件..並且永遠不會加載db/schema.rb文件,除非它是用於災難恢復之類的東西。
您沒有100%保證簽入版本控制的文件是最新版本,甚至是正確的版本。
上下遷移並將大量遷移捆綁到一個遷移文件中會更安全。
通過手動加載schema.rb文件,您完全繞過了遷移提供的安全網。這不是一個好主意。
您可以使用'rake db:schema:load' – 2012-04-12 11:40:43
並刪除所有遷移文件? – Luc 2012-04-12 11:43:21