【问题标题】:heroku pushing for deployment, something went wrong with my database, relation "users" doesn't existheroku 推动部署,我的数据库出了点问题,关系“用户”不存在
【发布时间】:2026-02-11 14:05:02
【问题描述】:

我正在尝试使用我的应用程序打开 heroku,但我正在查看日志并看到有关我的用户数据库的此错误?我尝试运行 heroku run rake db:migrate 并重新启动 heroku 和其他东西,但它没有似乎工作。我不知道这些行是什么意思。希望有人能在这里帮助我吗?

 => Booting WEBrick
 => Rails 3.2.13 application starting in production on http://0.0.0.0:56009
 at=info method=GET path=/ host=upkeepin.herokuapp.com fwd="76.89.238.178" dyno=web.1 connect=20ms service=1539ms status=500 bytes=643
 ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "users" does not exist
 ):

 LINE 5:              WHERE a.attrelid = '"users"'::regclass
                      pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              WHERE a.attrelid = '"users"'::regclass
                                         ^
   vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:659:in `exec_query'
                AND a.attnum > 0 AND NOT a.attisdropped
   vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:228:in `columns'
 :             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
   vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
   vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `exec_no_cache'
               FROM pg_attribute a LEFT JOIN pg_attrdef d
   vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.13/lib/active_re

谢谢

编辑:

按照下面的说明,在运行heroku logs 之后,我现在得到了这个:

     10:   <%= csrf_meta_tags %>
   app/views/layouts/application.html.erb:12:in `_app_views_layouts_application_html_erb__3270629977905203478_70215431754220'

   Rendered devise/shared/_links.erb (44.9ms)
     11:   
     12:   <%= stylesheet_link_tag 'gmaps4rails' %>
     13:   <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     15: <body>
   Rendered devise/sessions/new.html.erb within layouts/application (58.1ms)
 Completed 500 Internal Server Error in 179ms

 ActionView::Template::Error (gmaps4rails.css isn't precompiled):
     9:   <%= javascript_include_tag "application" %>

     14: </head>

【问题讨论】:

  • 数据库好像没有完全迁移
  • @bronislav 您是否有解决方案来说明如何完全迁移它,或者可能是什么原因导致它没有完全迁移?谢谢
  • 您能否显示来自您的模型和创建表的迁移的关联?可能您在模型中有关联,但没有关联迁移。
  • @bronislav 有没有一种简单的方法来显示我的关联?是否有某种控制台命令,例如 rake routes 类型的命令,它只会在我的控制台中弹出,我可以复制和粘贴它?我有一堆,如果我展示它会让人头疼。

标签: ruby-on-rails heroku ruby-on-rails-3.2


【解决方案1】:

这样做

$ git push heroku
$ heroku pg:reset SHARED_DATABASE --confirm <name-heroku-gave-to-your-app>
$ heroku run rake db:migrate
$ heroku run rake db:populate

然后试试这个:

$ heroku restart

【讨论】:

  • rake 在我执行 db:populate 时中止...我不断收到折旧警告,不知道这是否是错误的一部分?然后它中止并说don't know how to build task db:populate
  • 杀了它! heroku destroy 然后 heroku create git push heroku master heroku rakedb:migrate 只需确保您的 gemfile 中有 pg gem 用于生产 group :production do gem "pg" end 并将 config/database.yml 也添加到您的 .gitignore 文件中。
  • 它说我在供应商/插件中有 Rails 2.3 风格的插件!用于贬值警告。破坏heroku应用程序会解决这个问题吗?它不会再次出现吗?
  • 我认为这可以解决问题,但如果无法解决,请尝试以下操作:heroku run bash --app appname rake db:migrateheroku pg:reset DATABASE heroku run rake db:migrate
  • vendor/plugins 不是这里的问题,这些只是警告。这是heroku run rake db:migrate.. 如果您不在 Cedar 堆栈上,可能只是 heroku rake db:migrate(注意迁移,而不是迁移)
【解决方案2】:

错误来自无法预编译我的 gmaps4rails,答案在我的另一篇文章中:

rails heroku giving me We're sorry something went wrong error, gmaps4rails.css isn't compiled

【讨论】: