【问题标题】:Ruby app pushed to Heroku displaying issuesRuby 应用程序推送到 Heroku 显示问题
【发布时间】:2013-12-11 17:06:51
【问题描述】:

我正在使用 PostgreSQL 数据库运行 Ruby on Rails 应用程序。这是我第一次将带有数据库的应用程序推送到 heroku,所以我不知道会发生什么。我得到的是我的主页按预期工作;但是用户页面(由 Rails scaffold 命令创建的页面应该显示数据库查询功能,例如“创建用户”)没有显示。相反,“我们很抱歉,但出了点问题。我们已收到有关此问题的通知,我们会尽快查看。”从昨天开始就没有改变。

另外,我的应用程序主 heroku 页面显示了一些“Dyno”栏。这些看起来像进度条,只有当我尝试将它们拉到前面时,它们才会添加所需的付款。在每个栏的顶部,列出了一个命令:

  • 网络 bundle exec rails server -p $PORT
  • worker bundle exec rake jobs:work

我已经修改了我的 database.yml 文件,使其与 Heroku 规范中的 Postgres 数据库相匹配,所以它现在变成了这样:

>     production:
>       adapter: postgresql
>       encoding: unicode
>       database: d6i4fnhdh54239
>       pool: 5
>       username: evlptakrsjivpi
>       password: N6upI3-WSvca90zMXp8iKOXxh2
>       host: ec2-23-21-243-117.compute-1.amazonaws.com
>       port: 5432

但这个文件默认在 .gitignore 中,所以提交更改甚至不算作提交。我真的迷路了。这是我的 heroku 日志错误:

> 2013-12-11T21:17:28.683243+00:00 app[web.1]:
> ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation
> "users" does not exist 2013-12-11T21:17:28.683243+00:00 app[web.1]:
> LINE 1: SELECT     "users".* FROM       "users"
> 2013-12-11T21:17:28.683243+00:00 app[web.1]:                          
> ^ 2013-12-11T21:17:28.683243+00:00 app[web.1]: : SELECT     "users".*
> FROM       "users"): 2013-12-11T21:17:28.683243+00:00 app[web.1]:  
> app/controllers/users_controller.rb:5:in `index'
> 2013-12-11T21:17:28.683243+00:00 app[web.1]:
> 2013-12-11T21:17:28.683243+00:00 app[web.1]:
> 
>  !    Command cancelled.

【问题讨论】:

  • 运行 heroku logs -n 1500 以查看问题所在或使用 heroku logs --tail 查看实时日志
  • '2013-12-11T21:17:28.683243+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: 关系“用户”不存在 2013- 12-11T21:17:28.683243+00:00 app[web.1]: LINE 1: SELECT "users".* FROM "users" 2013-12-11T21:17:28.683243+00:00 app[web.1] : ^ 2013-12-11T21:17:28.683243+00:00 app[web.1]: : SELECT "users".* FROM "users"): 2013-12-11T21:17:28.683243+00:00 app[ web.1]: app/controllers/users_controller.rb:5:in `index' '
  • UndefinedTable 错误是什么意思?
  • 它告诉你该表不存在。详情见我的回答。

标签: ruby-on-rails postgresql heroku


【解决方案1】:

Heroku 将重新创建您的 database.yml 以匹配其内部数据库方案,因此您无需手动执行此操作。但是,您确实需要将其视为不同的数据库,这意味着单独的数据库迁移。

所以,请确保您运行 heroku run rake db:migrate 来更新您的表格。

【讨论】:

  • 成功了 :) 谢谢你,对新手的东西感到抱歉
  • 任何时候,这就是这个网站存在的原因。 :)
猜你喜欢
  • 2011-02-26
  • 2011-09-20
  • 2020-06-10
  • 2011-06-14
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多