Heroku上的ActiveRecord PGError不是本地的

时间:2011-01-04 15:47:04

标签: ruby-on-rails postgresql activerecord heroku

我在Heroku上获取的ActiveRecord PGError不是本地的。 Heroku日志的错误消息是:

  

ActiveRecord :: StatementInvalid(PGError:错误:列items.user_id不存在   第1行:选择“项目”。* FROM“items”WHERE(“items”.user_id = 4)OR

此代码在本地(SQLite)工作,但在Heroku(postgresql)上没有,所以我一直在阅读有关差异的内容。起初我认为这是一个案例问题,因为我认识到它应该是User_ID - 但现在我不确定,这是关于“项目”的东西不太正确我无法工作确切地知道它是什么。

正如我所说,这在我的本地机器上运行得非常好,只有在heroku和postgres上才能解决问题。

提前致谢。

3 个答案:

答案 0 :(得分:1)

您的数据库似乎没有items表中的'user_id'列。这可能是因为您最近没有运行迁移,或者您编辑了现有迁移,而不是进行新迁移以添加此列。

您现在关心heroku上的数据吗?如果没有,您可以使用Taps来获取本地数据库中的任何内容,并将Heroku的数据库设置为它的(虚拟)同步副本。在项目目录中的本地计算机上:

heroku db:push

这将擦除你的heroku数据库,所以明智地使用它。

答案 1 :(得分:0)

毕竟这是一个案例问题 - postgres确实(我相信)在将所有内容发送到数据库之前对所有内容进行了小写 - 我的user_id实际上被调用了,莫名其妙地User_ID;迁移后一切正常 - 感谢那些帮助过的人。

答案 2 :(得分:0)

尝试使用以下命令重新启动应用程序:

heroku restart