30

Rails 3.1 アプリを Heroku Cedar スタックにデプロイし、次のことを実行しようとしています。

heroku run rake db:migrate

戻ります:

Running console attached to terminal... 
Error connecting to process

また、コンソールを単純に起動しようとします。

heroku run console

どの実行コマンドでも同じエラーが返されます。

Running console attached to terminal... 
Error connecting to process

ログを見ると、エラー コードが表示されます。

2011-09-25T16:04:52+00:00 app[run.2]: Error R13 (Attach error) -> Failed to attach to process

現在のプロセスをheroku ps確認すると、試行が実行されていることがわかります。

Process       State               Command
------------  ------------------  ------------------------------
run.2         complete for 26m    bundle exec rails console
run.3         up for 27s          bundle exec rails console
run.4         up for 3s           bundle exec rake db:create
web.1         up for 46s          bundle exec thin start -p $PORT -e..

しかし、それぞれが例外を発生させています。

2011-09-25T16:31:47+00:00 app[run.3]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:31:47+00:00 heroku[run.3]: Process exited
2011-09-25T16:31:48+00:00 heroku[run.3]: State changed from up to complete
2011-09-25T16:32:11+00:00 app[run.4]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:32:11+00:00 heroku[run.4]: Process exited
2011-09-25T16:32:12+00:00 heroku[run.4]: State changed from up to complete

サーバー管理者は私の好みではないので、Heroku を使用することにしました。

Heroku のドキュメントと Google の両方が、私に先へ進む道を案内してくれませんでした。

何か案は?これは、Bamboo スタックでの私の経験ではありません。

私の他のエラーは、明らかに DB 移行が実行されていないことに関連しています。レーキ タスクを実行できるようになるまで、先に進めません。

4

7 に答える 7

82

私は同じ問題を抱えていました。問題は解決しませんでしたが、回避策を見つけました。

使用する代わりに:

heroku run rake db:migrate

以下を使用できます。

heroku run:detached rake db:migrate

これにより、コマンドがバックグラウンドで実行され、出力がログに書き込まれます。終了したら、結果のログを表示できます。

理想的ではありませんが、不十分なネットワークにいる場合、穴から抜け出すことができます:)

于 2012-01-16T16:18:42.980 に答える
17

この問題は通常、接続またはファイアウォールの問題が原因で発生します。次のコマンドを実行して、heroku runおよびサーバーへの接続をテストできます。heroku console

$ telnet rendezvous.heroku.com 5000 
$ telnet s1.runtime.heroku.com 5000

(正常に接続できる場合は、 を押しCtrl+]てから入力quitし、telnet セッションを終了します。)

一部のユーザーは、ファイアウォールでこれらのホスト名とポートの組み合わせをホワイトリストに登録した後、成功しています。

Heroku は、1 回限りのプロセスのトラブルシューティング セクションでこれについて言及しています: http://devcenter.heroku.com/articles/oneoff-admin-ps

起動に時間がかかるアプリケーションも、接続の問題を悪化させる可能性があります。サーバーの応答が遅いと、アプリが起動する前にローカル接続がタイムアウトします。

于 2011-10-03T15:10:04.303 に答える
4

これはさまざまな理由で発生するようです。私にとっては、Heroku Toolbelt の古いバージョンがインストールされていることが判明しました。それは自己更新バージョンの前であり、古いバージョンのheroku gemもインストールされていました。heroku ツールベルトを更新する前に、それらを削除する必要がありました。

このページは役に立ちました。最初に読んでください: https://devcenter.heroku.com/articles/heroku-command#staying-up-to-date

次のように、使用している heroku ツールベルトのバージョン (存在する場合) を確認します。

$ heroku version
heroku-toolbelt/2.xx.x 

バージョン 2.32.0 より古い場合は、更新する必要があります。応答に「heroku-toolbelt」が表示されない場合は、インストールする必要があります。

まず、古い heroku gem をすべてアンインストールしてください。以下のコマンドを実行すると、実行可能ファイルも削除するかどうか尋ねられました。正解はイエスです!特定のアプリに gem が必要な場合は、後でいつでもバンドル/インストールできます。

$ gem uninstall heroku --all

rbenv を使用している場合は、再ハッシュが必要になる場合があります。

$ rbenv rehash

古い gem を一掃したら、現在の heroku ツールベルトをダウンロードしてインストールします。ターミナルを再起動すると、すべてが機能するはずです。

編集:

rbenv パスが heroku cli パスの前に設定されていないことを確認する必要がありました。そうしないと、古い heroku gem をバンドル/インストールすると、heroku コマンドが再び乗っ取られます。~/.profile ファイルの末尾にエクスポート パス行を追加して、任意の rbenv パスの前に追加されるようにしました。

$ vi ~/.profile
export PATH=/usr/local/heroku/bin:$PATH

ターミナルをリロードすると、これが実行され、パスが /usr/local/heroku にないことが示されました

$ which heroku
/usr/local/heroku/bin/heroku
于 2014-11-17T22:23:56.573 に答える
1

heroku gem の最新バージョンをインストールしてから、これらの「heroku run」コマンドを再度実行してみてください。

于 2011-09-27T07:35:36.163 に答える
0

解決済み - 3G テザーでテストし、応答を受信しました。ファイアウォールではないようです。おそらくプロキシ、またはISP。

于 2011-11-13T17:00:20.623 に答える
0

私にとっては、heroku ツールベルトと cli のアップグレードが機能しました。私はbrewそれを次のように使用します:

brew upgrade heroku-toolbelt
于 2016-06-01T18:51:34.807 に答える
0

Heroku の問題のようです。Cedar で実行している私のアプリケーションで、コンソールに接続する際にエラーが発生します。入力しているコマンドに間違いはありません。

于 2011-09-25T17:37:58.063 に答える