0

我在使用 heroku 部署 rails 3.2 应用程序时遇到问题,加载应用程序时出现上述错误。这是我的日志:

→ heroku 日志

2013-07-14T01:15:03+00:00 heroku[slug-compiler]: Slug compilation finished
2013-07-14T01:15:11.541229+00:00 heroku[web.1]: Starting process with command `bundle exec     rails server -p 46418`
2013-07-14T01:15:14.054907+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2013-07-14T01:15:14.054907+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2013-07-14T01:15:14.492621+00:00 app[web.1]: => Call with -d to detach
2013-07-14T01:15:14.492621+00:00 app[web.1]: Connecting to database specified by DATABASE_URL
2013-07-14T01:15:14.492621+00:00 app[web.1]: => Rails 3.2.13 application starting in production on http://0.0.0.0:46418
2013-07-14T01:15:14.492621+00:00 app[web.1]: => Ctrl-C to shutdown server
2013-07-14T01:15:14.492621+00:00 app[web.1]: => Booting WEBrick
2013-07-14T01:15:15.901411+00:00 app[web.1]: [2013-07-14 01:15:15] INFO  ruby 2.0.0 (2013-06-27) [x86_64-linux]
2013-07-14T01:15:15.901411+00:00 app[web.1]: [2013-07-14 01:15:15] INFO  WEBrick 1.3.1
2013-07-14T01:15:15.901769+00:00 app[web.1]: [2013-07-14 01:15:15] INFO  WEBrick::HTTPServer#start: pid=2 port=46418
2013-07-14T01:15:16.447320+00:00 heroku[web.1]: State changed from starting to up
2013-07-14T01:15:17.584921+00:00 app[web.1]: Started GET "/" for 71.202.122.134 at 2013-07-14 01:15:17 +0000
2013-07-14T01:15:17.646525+00:00 app[web.1]: Processing by HomeController#index as HTML
2013-07-14T01:15:17.722541+00:00 app[web.1]: Completed 500 Internal Server Error in 76ms
2013-07-14T01:15:17.724418+00:00 app[web.1]:                                         ^
2013-07-14T01:15:17.724418+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
2013-07-14T01:15:17.724418+00:00 app[web.1]: 
2013-07-14T01:15:17.724418+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "houses" does not exist
2013-07-14T01:15:17.724588+00:00 app[web.1]: ):
2013-07-14T01:15:17.724588+00:00 app[web.1]: 
2013-07-14T01:15:17.726539+00:00 heroku[router]: at=info method=GET path=/ host=frozen-spire-1369.herokuapp.com fwd="71.202.122.134" dyno=web.1 connect=1ms service=149ms status=500 bytes=643
2013-07-14T01:15:17.724588+00:00 app[web.1]:   app/controllers/home_controller.rb:3:in `index'
2013-07-14T01:15:17.724418+00:00 app[web.1]: LINE 5:              WHERE a.attrelid = '"houses"'::regclass
2013-07-14T01:15:17.724418+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2013-07-14T01:15:17.724418+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2013-07-14T01:15:17.724418+00:00 app[web.1]:                      pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
2013-07-14T01:15:17.724588+00:00 app[web.1]:              ORDER BY a.attnum
2013-07-14T01:15:17.724418+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2013-07-14T01:15:17.724418+00:00 app[web.1]:              WHERE a.attrelid = '"houses"'::regclass
2013-07-14T01:15:17.724588+00:00 app[web.1]: 
2013-07-14T01:15:18.221829+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=frozen-spire-1369.herokuapp.com fwd="71.202.122.134" dyno=web.1 connect=9ms service=17ms status=200 bytes=0
2013-07-14T01:20:10.025198+00:00 app[web.1]: Started GET "/" for 71.202.122.134 at 2013-07-14 01:20:10 +0000
2013-07-14T01:20:10.048127+00:00 heroku[router]: at=info method=GET path=/ host=frozen-spire-1369.herokuapp.com fwd="71.202.122.134" dyno=web.1 connect=2ms service=24ms status=500 bytes=643
2013-07-14T01:20:10.035374+00:00 app[web.1]: Processing by HomeController#index as HTML
2013-07-14T01:20:10.038857+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2013-07-14T01:20:10.040758+00:00 app[web.1]: 
2013-07-14T01:20:10.040758+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "houses" does not exist
2013-07-14T01:20:10.040758+00:00 app[web.1]: LINE 5:              WHERE a.attrelid = '"houses"'::regclass
2013-07-14T01:20:10.040758+00:00 app[web.1]:                                         ^
2013-07-14T01:20:10.040758+00:00 app[web.1]:                      pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
2013-07-14T01:20:10.040758+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2013-07-14T01:20:10.040758+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2013-07-14T01:20:10.040758+00:00 app[web.1]:              WHERE a.attrelid = '"houses"'::regclass
2013-07-14T01:20:10.040758+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2013-07-14T01:20:10.040927+00:00 app[web.1]:              ORDER BY a.attnum
2013-07-14T01:20:10.040927+00:00 app[web.1]: ):
2013-07-14T01:20:10.040927+00:00 app[web.1]: 
2013-07-14T01:20:10.040927+00:00 app[web.1]: 
2013-07-14T01:20:10.040927+00:00 app[web.1]:   app/controllers/home_controller.rb:3:in `index'
2013-07-14T01:20:10.040758+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
2013-07-14T01:20:10.388132+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=frozen-spire-1369.herokuapp.com fwd="71.202.122.134" dyno=web.1 connect=3ms service=12ms status=304 bytes=0

我对 rails/heroku 相当陌生,因此非常感谢任何帮助。经过大量开发后,我正在尝试部署。对于未来,在开发过程的早期推送到heroku,然后继续推送会更好吗?谢谢!

4

1 回答 1

0
  1. ActiveRecord::StatementInvalid (PG::Error: ERROR: 关系“houses”不存在

    我会说houses数据库中的表丢失了,您可以使用 heroku toolbelt 运行迁移:heroku run rake db:create --app my_app2- 创建数据库,heroku run rake db:migrate --app my_app2- 运行迁移。使用Capistrano设置部署将使用一个命令为您运行所有内容。

    Heroku 工具带 - https://toolbelt.heroku.com/

    Capistrano - https://github.com/capistrano/capistrano

  2. 对于未来,在开发过程的早期推送到heroku,然后继续推送会更好吗?

    在我目前正在与我们的团队合作的项目中,我们有 2 个heroku实例,意味着 2 个应用程序,一个用于生产,第二个用于测试,首先将更改推送到测试应用程序,如果一切顺利,我们将其移至生产环境。

编辑

当我发现您正在sqlite用于开发时:

Heroku 使用 postgresql。https://devcenter.heroku.com/articles/sqlite3

像这样将其删除sqlite3或移动到development group您的 Gemfile 中:

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'thin'
  gem 'pg'
end

删除 Gemfile.lock 运行bundle install --without production

git add .
git commit -am "bundle updating sqlite3"
git push heroku master

或者更简单,只需在本地计算机上使用 PG 进行开发。你可能有一些 sql 语句可以在 sqlite 中工作,而不能在 heroku 上的 postgres 中工作,所以我会在你的地方使用 PG 进行开发。

于 2013-07-14T02:08:27.453 回答