2011-06-07 46 views
1

你如何着手改變rails應用程序中的列名和類型?您是否創建了新的遷移來進行更改,或者您是否回滾,編輯遷移文件,然後再遷移?撤銷遷移錯誤

在Rails中做到這一點的「正確」方式是什麼?

+0

查看這些來自[RailsGuieds](http://guides.rubyonrails.org/migrations.html)和[RailsForum](http://railsforum.com/viewtopic.php?id=1011)主題的教程。 。一般來說,如果您正在修復尚未提交的開發錯誤,請僅編輯,否則請創建一個新的遷移。 – cordsen 2011-06-07 02:23:11

回答

2

它的類型取決於在開發週期中何時發生這種情況,如果您最近進行了更改並沒有將其推出到公共庫中,那麼您確實可能想要執行回滾事務,然後編輯遷移文件和再次遷移,只是爲了保持乾淨。但是,如果遷移過程只是一些遷移,那麼您應該創建一個新遷移,將行和列更改爲「新」舊值。

1

好吧,撤消通常需要回滾遷移:

bundle exec rake db:rollback 

哪裏還可以指定VERSION=。如果你想把它改變成全新的東西,你會做一個新的遷移。通常你不應該觸摸舊的遷移。

0

Rails讓您選擇創建遷移並以多種方式進行更改。所以沒有「紅寶石開發者」技術的選擇。

但是,每次創建遷移時,都會創建一個文件,它代表您的開發歷史。有很多情況下,一個簡單的文件應該是有用的,就像其他Ruby初學者必須查看和修改的代碼一樣。在其他情況下,高級開發人員可能需要了解對代碼所做的更改和改進,特別是如果代碼運行很長時間(可能有些年)。