gpt4 book ai didi

ruby-on-rails - 无法让 heroku 与 rails 3.x postgresql 一起工作

转载 作者:行者123 更新时间:2023-11-29 13:05:48 24 4
gpt4 key购买 nike

我按照 Heroku 官方指南将 rails 项目推到了 heroku . application.rb 文件没问题,我以正确的方式添加了 pg gem 和 database.yml。当我推送到 heroku 时,我得到:

-----> Preparing app for Rails asset pipeline
Detected manifest.yml, assuming assets were compiled locally

但是当我通过 heroku open 打开 heroku 时,我得到一个错误。我输入了 heroku 日志并得到了这个。

Started GET "/" for 93.45.227.255 at 2012-10-11 13:28:04 +0000
2012-10-11T13:28:04+00:00 app[web.1]: Processing by ProductsController#index as HTML
2012-10-11T13:28:04+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-10-11T13:28:04+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: relation "products" does not exist
2012-10-11T13:28:04+00:00 app[web.1]: LINE 4: WHERE a.attrelid = '"products"'::regclass
2012-10-11T13:28:04+00:00 heroku[router]: GET gift4.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=203ms status=500 bytes=643
2012-10-11T13:28:04+00:00 app[web.1]: ):
2012-10-11T13:28:04+00:00 app[web.1]: ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2012-10-11T13:28:04+00:00 app[web.1]:
2012-10-11T13:28:04+00:00 app[web.1]:
2012-10-11T13:28:04+00:00 app[web.1]: ^
2012-10-11T13:28:04+00:00 app[web.1]:
2012-10-11T13:28:04+00:00 app[web.1]: Completed 500 Internal Server Error in 72ms
2012-10-11T13:28:04+00:00 app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-10-11T13:28:04+00:00 app[web.1]: WHERE a.attrelid = '"products"'::regclass
2012-10-11T13:28:04+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
2012-10-11T13:28:04+00:00 app[web.1]: ORDER BY a.attnum
2012-10-11T13:28:04+00:00 app[web.1]: app/controllers/products_controller.rb:5:in `index'
2012-10-11T13:28:04+00:00 heroku[router]: GET gift4.herokuapp.com/favicon.ico d

所以我试过了

heroku run rake db:reset

得到这个

Heroku client internal error.
! Search for help at: https://help.heroku.com
! Or report a bug at: https://github.com/heroku/heroku/issues/new

Error: Operation timed out - connect(2) (Errno::ETIMEDOUT)
Backtrace: /Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/client/rendezvous.rb:39:in `initialize'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/client/rendezvous.rb:39:in `open'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/client/rendezvous.rb:39:in `block in start'
/Users/francescochecco/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/client/rendezvous.rb:31:in `start'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/command/run.rb:125:in `rendezvous_session'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/command/run.rb:112:in `run_attached'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/command/run.rb:21:in `index'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/command.rb:206:in `run'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/lib/heroku/cli.rb:28:in `start'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/gems/heroku-2.32.6/bin/heroku:16:in `<top (required)>'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/bin/heroku:19:in `load'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/bin/heroku:19:in `<main>'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
/Users/francescochecco/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'

Command: heroku run rake db:reset
Version: heroku-gem/2.32.6 (x86_64-darwin11.3.0) ruby/1.9.3 autoupdate

我什么都试过了。有人可以帮忙吗?

最佳答案

您是否迁移了数据库?这个错误:

(PG::Error: ERROR:  relation "products" does not exist

...通常表示您缺少表格。在这种情况下,您的 products 表可能不存在。

我同意 db:reset 应该为您加载您的模式,因此这在理论上应该可以解决上述问题。但是,超时很奇怪,而且可能是暂时的。

尝试再次推送您的应用,然后在您的命令行上尝试:

heroku run rake db:reset

...或者

heroku run rake db:migrate

...让我知道发生了什么。

此外,您的应用程序尝试使用什么数据库(我猜是 Postgres)? database.ymlproduction 部分通常会被 heroku 忽略,因为它们会注入(inject)自己的 production 数据库部分。

关于ruby-on-rails - 无法让 heroku 与 rails 3.x postgresql 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com