2015-03-31 114 views
1

我剛合併了一個分支,並在分期上運行了rake db:migrate,並且它還原了我的所有遷移。 (而不是遷移新的)Rake db:遷移剛剛恢復(回滾)所有遷移

然後,我回到了主人,重新加載數據庫並運行遷移,並再次,數據庫像以前一樣被消滅。

關於如何調試的提示?

爲什麼db:migrate甚至會回滾任何遷移?

有關如何使用不同命令的任何提示,該命令會告訴導軌只抓取新的遷移,並執行up並永不回滾任何遷移?

回答

3

如果設置了VERSION環境變量,那麼rails會遷移到該版本而不是最新版本。特別是因爲導軌調用to_i它將遷移到版本0,如果它包含非整數值。您可以通過運行env(列出所有的環境變量)或查看(echo $VERSION

這主要是從當耙不支持傳遞參數給任務的命令行上使人們使用與環境模仿他們的遺物變量,以便你可以做

rake db:migrate VERSION=xyz 
+0

你說得對,'echo $ VERSION'給出'0.2.0'字符串,我沒有放在那裏。如果不依賴於好奇的'VERSION',如何進行遷移,您會有任何快速的提示嗎? – hakunin 2015-03-31 10:26:10

+0

不知道你可以做什麼,除了未設置$ VERSION – 2015-03-31 10:27:58

+0

無法找到ENV設置的位置。在我的情況下,解決方法是將'ENV ['VERSION'] = nil'放在Rakefile中並加註釋。 – hakunin 2015-03-31 17:41:35