1

Herokuの公式ガイドに従って、railsプロジェクトをherokuにプッシュしました。application.rbファイルは大丈夫です、私はpggemをdatabase.yml正しい方法で追加しました。herokuにプッシュすると、次のようになります。

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

しかし、経由でherokuを開くheroku openと、エラーが発生します。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

私はすべてを試しました。誰でも助けることができますか?

4

3 に答える 3

2

データベースを移行しましたか? このエラー:

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

...通常、テーブルが欠落していることを示します。この場合、productsテーブルはおそらく存在しません。

スキーマをロードする必要があることに同意しdb:resetます。これにより、理論的には上記の問題が解決されるはずです。ただし、タイムアウトは奇妙で、おそらく一時的なものです。

アプリをもう一度プッシュしてから、コマンドラインで次を試してください。

heroku run rake db:reset

...また

heroku run rake db:migrate

...そして、何が起こるか教えてください。

また、アプリが使用しようとしているデータベースは何ですか (Postgres だと思います)。yourのproductionセクションdatabase.ymlは通常、heroku によって無視されます。これは、独自のproductionデータベース セクションが挿入されるためです。

于 2012-10-11T13:56:58.540 に答える
0

プッシュする前にローカルでコンパイルしましたか? その場合、manifest.yml が生成され、heroku 側でエラーが発生している可能性があります。久しぶりですが、ローカルでプリコンパイルしていたので(理由はわかりません)、このようなエラーが発生しました...と思います。ローカルでプリコンパイルしないでください。ローカルでプリコンパイルしたことがある場合は、パブリック ディレクトリに移動し、生成されたアセット フォルダーを削除します。次に、heroku にプッシュし、リモートでコンパイルして問題が解決するかどうかを確認します。

于 2012-10-13T17:54:59.870 に答える
0

heroku dbをリセットする必要があります

$ heroku pg:reset SHARED_DATABASE --confirm myapp

そして、する$ heroku restart

それが役立つかどうかを確認してください

次に、移行を試みます

于 2012-10-11T15:33:41.587 に答える