Heroku没有更新数据库架构。

12

当我部署时,Heroku似乎没有更新我的数据库模式。以下是详细信息:

这是User类的预期外观:

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)

请问我做错了什么? 非常感谢您的帮助!

Simon


你确定所有的迁移都在源代码控制下吗? - Jano González
4个回答

24

当你运行heroku rake db:migrate时,您是否看到任何输出?

在迁移完成后尝试运行heroku restart来重新启动 Web 服务器和 DJ 工作程序。这不应该影响您的控制台,但我曾经看到 Web 服务器在部署后立即提供旧版本的代码,这通常不是问题,但对于待处理的迁移可能会有影响。


谢谢tfe,看起来这只是一个暂时性的问题。现在它已经正常工作了。我猜重启也可以解决这个问题。 - Simon

1

你可能想尝试

heroku run rake db:migrate
heroku restart

希望能帮到你。


0

被采纳的答案是正确的。顺带一提,现在你应该使用heroku run rake db:migrate,因为heroku rake db:migrate已经不推荐使用了。


-1

运行 heroku rake run db:migrate 然后运行 heroku restart

刷新您的网页,应该就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接