2011-10-21 34 views
7

我不確定這是否是一個錯誤,或者如果這實際上刪除了migration.rb文件。我用生成創建以下遷移:已刪除migration.rb文件?軌道中的潛在錯誤?

$ rails generate migration add_delta_to_submissions

invoke active_record 
    create db/migrate/20111020175649_add_delta_to_submissions.rb 

後來我意識到,我忘了把任何列,所以我用了向上的控制檯和改寫與產生破壞:

$ rails destroy migration add_delta_to_submissions

invoke active_record 
    remove db/migrate/20111020175649_add_delta_to_submissions.rb 

所有好爲止,現在它的時間來運行我需要的列遷移。這裏是哪裏出了問題進來 - 我再次使用上箭頭 - 但只有一次 - 加入我的專欄信息:

$ rails destroy migration add_delta_to_submissions delta:integer

invoke active_record 
    remove migration.rb 

我意識到我可能不應該使用的向上箭頭的命令像GENERATE和DESTROY(吸取教訓!)一樣易變,但該命令返回說明它已經移除了migration.rb文件。我甚至不知道有一個migration.rb文件 - 尤其是沒有那麼容易刪除的文件。

踢,我決定嘗試通過添加字母X字遷移結束欺騙命令控制檯 - 並收到此消息:

$ rails destroy migrationx add_delta_to_submissions delta:integer

Could not find generator migrationx. 

所以,我認爲有可能是使用rails destroy命令的錯誤。一旦它意識到不再有一個add_delta_to_submissions.rb文件,它只是將此關閉並將.rb添加到單詞遷移(或DESTROY之後的任何單詞)。這似乎有點危險....

無論如何 - 我很想知道如果我已經以某種方式破壞了我的RAILS環境(rails 3.1,ruby 1.8.7),現在migration.rb文件已被刪除。如果是這樣 - 我有哪些選擇來解決這種情況?

非常感謝提前...

+0

同樣的事情發生在我身上。你知道發生了什麼事嗎? – marimaf

+1

我運行destroy命令時發生了同樣的事情,但將.rb附加到遷移名稱的末尾(因爲我是老年人)。我認爲它是無害的,但是在發生器中卻是某種錯誤。 –

回答

1

你的系統上有git嗎?同樣的事情發生在今天,我跑了:

git diff | grep migration 

沒有出現在我的系統上。我搜索了這個文件,並且在我的任何一個Rails 3.1項目中仍然找不到任何migration.rb文件。大概可以忽略它沒有任何傷害?

+0

我的意思是其他Rails項目和文件。抱歉。 –

+0

你可以編輯你的評論到你的答案。 – meagar

2

當你輸入一個不存在遷移的名稱也發生作爲參數來破壞命令

$rails migration destroy non-existing-migration-name 

invoke active_record 
remove migration.rb 

但我認爲它是無害的。

+0

它也發生在我身上。 –