我在 Heroku 上而非本地收到 ActiveRecord PGError。来自 Heroku 日志的错误消息是:
ActiveRecord::StatementInvalid (PGError: ERROR: column items.user_id does not exist LINE 1: SELECT "items".* FROM "items" WHERE ("items".user_id = 4) OR
此代码在本地 (SQLite) 上有效,但在 Heroku (postgresql) 上无效,因此我一直在阅读有关差异的信息。起初我认为这是一个案例问题,因为我认识到它应该是 User_ID
- 但现在我不确定,这是关于“项目”的东西不太正确,我可以'弄清楚它到底是什么。
正如我所说,这在我的本地机器上运行得非常好,只有在 heroku 和 postgres 上才会出现问题。
提前致谢。
最佳答案
看来您的数据库在项目表中没有“user_id”列。这可能是因为您的迁移最近没有运行过,或者您可能编辑了现有的迁移而不是进行新的迁移来添加此列。
你现在关心你在 heroku 上的数据吗?如果没有,您可以使用 Taps 获取本地数据库中的任何内容,并将 Heroku 的数据库设置为它的(虚拟)同步副本。在您的项目目录中的本地计算机上:
heroku db:push
这将删除您的 heroku 数据库,因此请明智地使用它。
关于ruby-on-rails - Heroku 上的 ActiveRecord PGError 不是本地的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595502/