2012-11-16 13 views
1

在我的Rails應用程序中,我有一個模型Events。它有幾列,通過遵循本指南https://devcenter.heroku.com/articles/export-from-heroku-postgres然後執行rake db:schema:dump創建。向Rails 3應用程序中的模型添加列,使用從heroku轉儲的模式的數據庫

現在我想添加一些新的列到Event模型。我試着編輯schema.rb並重新啓動應用程序,但似乎沒有工作。任何人都知道正確的方式進行?

----編輯-------

具體來說,我在schema.rb加入這行來Event模型。

t.datetime "date_time" 

當我點擊鏈接在軌道添加事件程序,我收到此錯誤:

undefined method `date_time' for #<Event:0x007fdb59a87118> 
+0

」似乎沒有工作「。你的意思是「似乎沒有任何效果」,「產生了以下錯誤信息:...」,還是別的什麼? –

+0

我會添加一些細節。對不起,這裏有點晚了,沒有引起足夠的重視。 :) – wuliwong

回答

2

schema.rb文件是數據庫模式的當前狀態的表示,它是由數據庫遷移過程寫入,不

如果要添加新列,create a migration

$ rails generate migration AddNewEventStuff 
$ vim db/migrate/add_new_event_stuff*.rb 

添加您的列:

class AddNewEventStuff < ActiveRecord::Migration 
    def change 
    add_column ... 
    end 
end 

惟獨沒有考慮到add_column應該在那裏了。一旦你進行了移植,做一個rake db:migrate,你就完成了。現在您應該在schema.rb中看到一些變化。

請參閱Ruby on Rails Migration Guide瞭解更多詳細信息和構建遷移的不同方法。 「

+0

這樣做了!你是我的朋友的豐富知識! :) :) – wuliwong

0

你應該嘗試heroku run rake db:schema:load。也就是說,這可能是錯誤的方式。相反,您應該通過遷移對模式進行更改,然後在其上運行heroku run rake db:migrate

相關問題