我在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上才能解决问题。
提前致谢。
答案 0 :(得分:1)
您的数据库似乎没有items表中的'user_id'列。这可能是因为您最近没有运行迁移,或者您编辑了现有迁移,而不是进行新迁移以添加此列。
您现在关心heroku上的数据吗?如果没有,您可以使用Taps来获取本地数据库中的任何内容,并将Heroku的数据库设置为它的(虚拟)同步副本。在项目目录中的本地计算机上:
heroku db:push
这将擦除你的heroku数据库,所以明智地使用它。
答案 1 :(得分:0)
毕竟这是一个案例问题 - postgres确实(我相信)在将所有内容发送到数据库之前对所有内容进行了小写 - 我的user_id
实际上被调用了,莫名其妙地User_ID
;迁移后一切正常 - 感谢那些帮助过的人。
答案 2 :(得分:0)
尝试使用以下命令重新启动应用程序:
heroku restart