Heroku Postgres错误:PGError:错误:关系“组织”不存在(ActiveRecord :: StatementInvalid)

|| 我在将Rails应用程序部署到Heroku时遇到问题,在尝试访问该应用程序时会抛出此错误:   PGError:错误:关系\“ organizations \”不存在(ActiveRecord :: StatementInvalid)
SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = \'\"organizations\"\'::regclass
  AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
有人有什么想法吗?这对我来说是第一次,特别是因为我已经在Heroku上使用其他应用程序一年了,却没有看到类似的东西。当然,一切都可以在本地SQLite上运行。     
已邀请:
我有同样的问题。为了解决这个问题,重置数据库更加容易。 heroku rake db:reset(如果您在雪松上,则使用“'heroku run rake db:reset \'”) heroku rake db:migrate(如果您在雪松上,则使用'heroku run rake db:migrate \') 然后,对于我的情况,迁移成功完成了:) 尽管在这种情况下这是一个很好的解决方案,但不要在生产中使用。它将删除数据库中的所有记录     
在遇到必须要做的事情之前,我遇到了同样的问题:
heroku rake db:migrate
:)     
根据我的经验(Rails 3.1,Sedar堆栈),在运行
pg:reset
db:migrate
之后,您可能必须运行
heroku restart
。     
我的heroku版本:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
为了修复它,只需打开您的终端并运行:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
heroku run rake db:setup
heroku restart
heroku open
    
就我而言,我还必须销毁并重新创建我的应用程序。我用未提交的迁移文件运行了rake db:migrate,并且由于某种原因,pg:reset无法正常工作。     
您正在使用设计吗?升级到2.0时,我遇到了这个确切的问题-您必须手动更改迁移文件。 https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style     
显然,删除了我的整个应用程序,然后从头开始重新部署,将其修复。我不知道是什么问题。     
就我而言,症状是相同的,但根本原因和补救措施却有所不同。花了几个小时。希望这篇文章可以节省别人的时间! 我在用: Heroku雪松 Rails 3.2 Actice脚手架宝石 一切在SQLite上都可以在本地正常运行,但是在Heroku上会遇到相同的PG错误。事实证明,由于类似于上面的错误,ActiveScaffold某种程度上阻止了Heroku推送成功运行rake任务。因此,您将获得一个缓存22,如果尝试运行heroku rake db:migrate或类似的代码,则会遇到相同的错误。 现在修复: 从所有使用\“ active_scaffold \”的控制器中注释掉类似于以下内容的代码块:
active_scaffold :<model_name> do |conf|
end
提交,推送到heroku
heroku run rake db:migrate
运行
heroku run rails console
,然后说创建一个模型并保存,以验证一切正常。 现在还原所做的更改(即恢复上面的“ 10”字块) 提交,推送到heroku 你在做生意!     
我保持本地设置尽可能接近生产环境,包括使用postgresql数据库,因此我在本地计算机上遇到了此问题。我仍然无法删除生产数据库。原来我的问题只是在测试中,所以我使用了:rake db:test:prepare修复它。     
rake db:drop
rake db:create
rake db:migrate
    
我遇到了类似的问题,分别运行
heroku run rake db:reset
heroku run rake db:migrate
来解决此问题。我想我只是没有运行适当的迁移来解决问题。     
此错误可能有很多原因。但是,对于我的应用程序来说,问题是我在运行迁移之前没有注销应用程序(?)。所以去这条路:  
http://name_of_my_app.herokuapp.com/logout
为我解决了问题。     
经过数小时的筛选,我意识到当您指定
rails new MYAPP -database POSTGRESQL
它更改了.gitignore文件,忽略了整个
/db/ directory
,因此我的数据库再也没有推送到heroku上了。小心删除它,或者至少在您上推的位置没有用户名和密码。     

要回复问题请先登录注册