在Heroku上使用Rails应用程序的Bizarre PG :: UndefinedTable错误

时间:2016-07-19 19:09:37

标签: ruby-on-rails ruby postgresql heroku

我用Rails构建了一个应用程序,用于抓取Twitter的电话号码。它取决于heroku,它运行正常,直到我使用该应用程序为不同的客人添加了一个模型。现在,每当我尝试db:migrate,db:reset或db:create时,我都会收到错误“ActiveRecord :: StatementInvalid:PG :: UndefinedTable:ERROR:relation”guest“”不存在“。我已经阅读了关于这个主题的每个堆栈溢出文章,但是每个解决方案都使用了在没有收到错误的情况下无法运行的命令。

该计划的所有内容在本地都很有效。我可以迁移到数据库,删除并重新创建它,如果我需要,并使用该应用程序的全部功能。问题是迁移到postgres Heroku数据库。我没有任何错误地推送到Heroku,但当我尝试在线运行应用程序时,它告诉我它无法访问其数据库。我将我的数据库更改迁移到Heroku,当我这样做时,我收到了错误。我尝试重置Heroku数据库并再次迁移,但我在迁移时遇到了同样的错误。

访客是我在添加登录到应用时创建的模型。用户是Twitter帐户,访客是使用刮刀登录的人。用户通过“has_many”“belongs_to”关系属于访客。

此外,在使用heroku收到错误后,当我尝试迁移到本地数据库时,我收到错误。就像我说的那样,我不能再db:reset,db:create或db:在本地迁移。我只能db:drop。

我在本地和生产中使用postgres。我的桌子看起来都不错。我已经检查了迁移文件的时间戳,并尝试先创建guest虚拟机并首先创建用户。这是我schema file的屏幕截图。

这是我error message的屏幕截图。

非常感谢任何帮助。我被困在这一个星期了。

2 个答案:

答案 0 :(得分:2)

我想出来了

非常感谢,mu太短了。我认为我的问题是我在初始化文件中引用了我的guest类。我将那段代码移动到与之相关的控制器方法,推送到heroku,现在一切正常。

答案 1 :(得分:0)

你的postgres用户没有创建或删除数据库的权限,你需要使用pg:reset

heroku pg:reset DATABASE_URL

This就是我所遵循的,它对我有用。