2012-07-13 143 views
2

當我跑bundle exec rake db:test:prepare我有以下幾點:我可以刪除遷移文件嗎?

rake aborted! 
Multiple migrations have the name CreateMicroposts 

要檢查我的移民文件的狀態,我跑

rake db:migrate:status 

,並得到:

狀態遷移ID遷移名稱 - ------ --------------- -----------------

up 20120616205407創建用戶

了20120622103932添加索引到用戶的電子郵件

了20120622114559添加密碼摘要用戶

了20120628095820添加記得令牌用戶

高達20120704123654用戶

添加管理員下來20120706103254創建microposts

up 20120707073410創建微博

正如您所看到的,我有兩個遷移文件,它們的名稱完全相同,代碼完全相同。只有它們的狀態有所不同,例如Up和Down。

Up和Down是什麼意思?

如果必須,我可以刪除哪一個?

回答

0

的問題是,你必須包含標題

class CreateMicroposts< ActiveRecord::Migration 

耙分貝兩個不同的遷移文件:遷移:狀態不檢查遷移文件的狀態。它會告訴您如果運行rake db:migrate,將應用哪些遷移。向上/向下標籤幾乎不言自明:它會告訴您是否通過up方法或down方法應用遷移。 up方法在遷移時運行,在回滾遷移時運行down方法。您可以進一步閱讀Rails遷移here

0

up是當「進化」(即遷移到一個新的模式)調用的方法,而down被調用時「迴歸」(即遷移到一個較舊的架構版本的方法,因爲你改變一個不適合您)。 db:migrate調用updb:rollback調用down。在最新版本的rails中,有change可以同時處理這兩個版本。

至於刪除......我近期沒有做過多積極記錄,但我認爲你可以隨意對文件做任何你想做的事情。我不認爲刪除重複的文件會造成任何傷害,如果是這樣的話。那麼,您使用源代碼管理,對吧? :)

+0

是的,我使用版本控制。感謝您的信息,Ksol! – 2012-07-13 07:16:48

相關問題