Rake文件在Heroku上看到旧版本的数据库

时间:2014-09-03 18:21:18

标签: postgresql heroku rake

我使用rakefile为我的数据库播种。我看到了奇怪的行为(参见Additional user attributes results in UnknownAttributeError and NoMethodError)并得出结论,它是在我的数据库的旧版本上运行的(至少是我的Users表的旧版本,可能更多)。

  • 在localhost上运行rakefile可以正常工作
  • 在Heroku上,在rakefile中打印User.column_names显示表的旧版本
  • 在Heroku上,从主应用程序中打印User.column_names显示表格的新版本
  • 在Heroku rails控制台中,User.column_names显示表的新版本

任何想法如何解决?

1 个答案:

答案 0 :(得分:1)

确保你在heroku上做的一件事是正确地重启你的动态。我的一位客户曾经尝试过这样的事情:

heroku run rake db:migrate db:seed_data

Heroku在https://devcenter.heroku.com/articles/rake的文档提到您应该在迁移之间重新启动应用程序:

  

运行迁移后,您需要使用heroku重新启动应用   重新启动以重新加载架构并拾取任何架构更改。

所以答案可能是不在同一过程中批量处理;即试试

之类的东西
heroku run rake db:migrate; heroku run rake db:seed_data