2010-10-24 115 views
12

當我部署時,Heroku似乎沒有更新我的數據庫模式。下面是詳細信息:heroku不更新數據庫模式

這裏是應該是什麼樣子的用戶等級:

create_table "users", :force => true do |t| 
t.string "username" 
t.datetime "created_at" 
t.datetime "updated_at" 
t.string "email" 
t.string "encrypted_password" 
t.string "salt" 
t.string "remember_token" 
t.boolean "admin",    :default => false 

這裏是我的部署過程:

git push heroku master 
heroku rake db:migrate 
heroku db:push 

一切似乎走順利...除了如果我檢查實際用戶表中的數據庫...

heroku console User 

...我得到一箇舊版本的用戶的...

User(id: integer, username: string, created_at: datetime, updated_at: datetime) 

任何想法,我做錯了什麼? 非常感謝您的幫助!

西蒙

+0

您確定所有的遷移都在源代碼控制之下嗎? – 2010-10-24 18:27:12

回答

24

你看到任何輸出,當你heroku rake db:migrate

嘗試運行heroku restart在遷移後重新啓動Web服務器和DJ工作人員。這應該不會影響您的控制檯,但我已經看到Web服務器在部署後立即爲代碼的舊版本提供服務,這通常不是問題,但可以通過暫掛遷移進行。

+0

感謝tfe,它似乎是一個暫時的問題。現在它工作得很好。我想重啓也可以解決問題。 – Simon 2010-10-24 23:46:14

+3

'heroku restart'爲我工作,謝謝 – Eloff 2011-06-01 23:54:11

0

接受的答案是正確的。 FYI雖然,你現在使用heroku run rake db:migrate因爲heroku rake db:migrate已被棄用

1

你可能想嘗試

Heroku的運行耙分貝:遷移
Heroku的重新啓動

希望這有助於。

-1

運行heroku rake db:migrate 然後heroku restart

刷新你的網頁,它都應該工作。