2011-09-29 51 views
5

剛剛學習rails,我正在進行遷移,並且這一切都從邏輯上開始,直到我在代碼中發生了奇怪的事情;Rails 3生成遷移 - 沒有向上或向下的方法

rails generate migration AddRegionToSupplier 

以上產生的遷移文件中只有一個「def change」方法。

我把這個搜索了一遍,發現這正是應該發生的事情;

http://guides.rubyonrails.org/migrations.html

我本來期望它來生成「DEF向上」和「DEF下來」的方法,使移民可能被回退。我在這一代犯了錯誤,還是錯過了明顯的東西?

+1

你tl; dr'ed XD不用擔心會發生很多對我來說太大聲笑 – corroded

回答

16

link you pasted

的Rails 3.1使遷移通過提供一種新的方法change聰明。 此方法對於編寫建設性遷移(添加 列或表)是首選。 遷移知道如何遷移數據庫 並在遷移回滾時將其撤銷,而不需要 編寫單獨的向下方法。

所以看起來你不必擔心有一個def self.down爲Rails是現在足夠聰明,知道如何回滾。

+1

我喜歡這個答案。簡單而簡潔。 :) Rails如何知道如何反向移植,如果它沒有處理它的方法?是否有一些額外的數據保存在某處以跟蹤這些數據? – skcin7

相關問題