2011-11-10 66 views
5

是否有一種很好的方式來將rails db遷移文件合併到每個表的一個文件中除了手動分割schema.rb合併數據庫/遷移文件

我的大多數遷移文件都是在開發過程中創建的,並不代表實際的數據更改。由於歷史原因,這些文件仍然可以在源代碼管理系統上訪問。保留這些不必要的文件讓我感到不舒服。

回答

-4

不要打擾。舊的遷移文件沒有任何傷害,並且可能使維護更容易。保持原樣。

+0

只有在遷移代表真實的數據更改時,它們纔會使維護更容易,事實並非如此。 – guiding5

+0

遷移文件應該表示* schema *更改,而不是數據更改等。您可以發佈您想要擺脫的示例遷移嗎? –

+0

刪除多個不相關的列,刪除不必要的索引,重命名列等。 – guiding5

13

嗯,我可以想象你想要一個乾淨的開始。在第一版發行版中處於項目開發模式時,您不需要單獨的遷移文件。雖然他們不能明顯傷害。

基本上你可以做什麼,是這樣的。

FIRST BACKUP您的模式和數據。

db/schema.rb包含(或應該包含)最新版本的模式。否則運行:

rake db:schema:dump 

現在你可以清理你的遷移文件夾。

然後運行:

rake db:drop 
rake db:schema:load 

的最後一個命令運行的db/schema.rb,並創建一個新的模式。這應該會帶您到數據庫的最後一個版本。

顯示DB任務

耙-T分貝

+0

rake說「不知道如何構建任務」模式:drop'「。我使用紅寶石1.9.3和鐵軌3.2.9 – gfreezy

+0

抱歉是一個錯字。我糾正它(耙分貝:下降) – Roger

0

您可以使用Squasher寶石所有年輕人合併遷移到一個。