我得到一些意外的行爲,rake db:migrate
和rake db:rollback
。我希望有人能夠爲我揭開一些光。爲什麼「rake db:migrate」和「rake db:rollback」不能一次回滾多個遷移?
我通過添加一個衝突的問題而使我的遷移變得很糟糕,而且我試圖遷移回0,以便我可以再次遷移並繼續知道一切都會正常工作。
我正在運行rake db:migrate version=0
並剛剛在命令行中退出,沒有報告遷移並且對我的數據庫沒有影響。我有一個Rakefile,並且我的database.yml文件設置了正確的登錄憑證。
四處遊蕩,我發現我能夠去rake db:rollback step=1
沒有問題:適當的行動將發生在遷移。但是,rake db:rollback step=2
(或步驟= 3或步驟= 5 - 除1以外的任何內容)只能一次執行一次遷移。
在終端中使用mysql完全刪除數據庫。重新創建它,然後去rake db:migrate
。所有的桌子都是按照他們應有的方式建造的。我認爲所有破碎的東西都是固定的。
所以我去了rake db:migrate version=0
....再次沒有任何事情發生。表仍然存在於數據庫中,它應該已經回到空白狀態。
有沒有人有任何想法?在這裏,我的頭皮幾乎已經劃破了一個洞。
手動刪除數據庫和運行我的遷移後,rake db:migrate version=0 --dry-run --trace
給我的迴應:
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute (dry run) environment
** Execute (dry run) db:migrate
我在這一點上遷移都只是RailsTutorial.org的,重複的這是我一直直到現在作爲一種學習練習;他們都有self.down方法,他們都工作,當我一次回來一個。
唯一可能相關的其他事情是我在另一臺計算機上完成了該教程(我的電腦);我把它推到github上,並將它克隆到我的Mac上,以便將教程作爲我自己工作的起點。這款應用在我的Mac瀏覽器(與PC相同)上似乎運行良好,儘管我一直在關注無數的教程,第一次在Mac上設置Rails環境(RVM),而我已經安裝了不同的寶石來這樣做。我的問題可能源於此嗎?
感謝您的任何建議!
那麼,怎麼樣。解決了。完全真棒 - 謝謝謝爾蓋! – Reb 2011-12-26 11:43:07
我正在努力解決如何!這是我的第一篇文章! ;) – Reb 2011-12-26 11:45:45
Psst,只是爲了讓那些可能引用它的人都有用,因爲原來的答案已經被調整,重點也不完全相同:不使用CAPITAL LETTERS(用於STEP和VERSION)是我出錯的地方。爲此再次歡呼! :) – Reb 2011-12-26 12:35:04