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

刷新你的网页,它都应该工作。