2014-07-15 84 views
1

我最近開始使用Rails,並使用CLI創建了一些模型,然後創建了一些遷移。Rails:我修改了我的遷移文件(不好,我知道)

我在那裏添加了所有的列後,運行了rake db:migrate命令,然後意識到我已經排除了關聯。

那麼我做了什麼? 我繼續編輯遷移以包含這些密鑰。

我再次運行rake db:migrate,並且架構中沒有任何更改。

然後我跑rake db:reset然後rake db:setup

當這沒有奏效時,我刪除了我的schema.rb(該補丁的東西不會更新!)並嘗試recreating it。當我意識到這種方式無效時,我放棄了數據庫並殺死了模式。

現在我遇到了一些手動修改的遷移,沒有schema.rb,也沒有數據庫。

如何獲得修改過的遷移以生成模式,並與Rails玩好?

回答

4

開發它沒關係,刪除和重建您的數據庫。我經常這樣做,我甚至有一個耙子任務。 3命令鏈是:

rake db:drop 
rake db:create 
rake db:migrate 
# And a 4rth optional command to rebuild your test database 
rake db:test:prepare 

有了這個,你應該是不錯的

下一次需要遷移之後手動修改遷移,你應該處理方式:

  1. rake db:rollback
  2. 編輯您的移民
  3. rake db:migrate

經過這些步驟將節省您的一些頭疼


獎金信息:在您部署遷移到您的生產服務器,你不能手動修改它,因此你必須寫另一個

遷移,將執行修改(添加列等...)

+0

工作!謝謝 :) – FloatingRock

相關問題