1

Tapsを介してデータベースをHerokuにプッシュしようとすると、404エラーが発生します

(1.9.2@[app_name]_db) heroku db:push --app [app_name]
Loaded Taps v0.3.24
Auto-detected local database: sqlite://db/development.sqlite3
Warning: Data in the app '[app-name]' will be overwritten and will not be recoverable.

 !    WARNING: Destructive Action
 !    This command will affect the app: [app-name]
 !    To proceed, type "[app-name]" or re-run this command with --confirm [app-name]

> [app-name]
Sending schema
Schema:          0% |                                          | ETA:  --:--:--
Saving session to push_201209251425.dat..
!!! Caught Server Exception
HTTP CODE: 404

db:pushコマンドは以前は正常に機能していましたが、移行をロールバックして編集し、再移行することでデータベースにいくつかの変更を加えました。これで、アプリを正常にデプロイできますが、データベースはプッシュされません。これが移行の編集に関連しているかどうかはわかりません。

このアプリは私のマシンで正常に動作し、Herokuのコピーと自分のコピーの不一致を解消したかったので、新しいアプリを作成してプッシュしました。同じこと:Herokuアプリは機能しますが、db:pushを受け取りません。上記と同じ404でエラーになります。

これはHerokuサービスが一時的にダウンしているのですか、それともアプリを変更すると404が発生しましたか?

編集:herokuログにエラーメッセージが表示されない

4

3 に答える 3

1

Herokuのサポートに応答するのに時間がかかりすぎたため、Tapsgemを使用してEC2インスタンスと直接通信する回避策を見つけました。

  1. データベースのHerokuダッシュボードに移動します。私にとってこれは

    https://postgres.heroku.com/databases/ [my-database-name]

    アドオンを経由してナビゲートしましたが。

  2. 「接続設定」の「URL」をクリックすると、次のようなメッセージが表示されます。

    postgres:// [ユーザー名]:[パスワード] @ ec2-[ip_address_numbers] .compute-1.amazonaws.com:[ポート]/[データベース名]

    この値をコピーしてください。ここでは[EC2_URL]と呼びます。

  3. まだ持っていない場合は、1.9.2 gemsetにTapsをインストールします(1.9.3が機能するかどうかわからない、テストしていません)

  4. ターミナルで実行してトランザクションを容易にするために、ローカルホストタップサーバーを設定します。

    サーバーpostgres:// [local_machine_username] @ localhost / [name_from_database.yml] [some_username][some_password]をタップします

    (ユーザー名とパスワードの前のスペースに注意してください)

  5. 次に、別のターミナルウィンドウから自分でトランザクションを処理できます。

    タッププル[EC2_URL]http:// [some_username]:[some_password] @localhost:5000

実行して、すべてのデータをローカル開発データベースからAmazonインスタンスにプルする必要があります。また、その逆を行ったり、別のデータベースを選択したりすることもできます。そうでない場合でも、私は警官ではありません。

于 2012-09-26T00:59:54.747 に答える
0

herokudbコマンドとruby1.9.2(私はこのバージョンを持っています)にいくつかの問題があります。
db:pullは「テーブル情報をフェッチできません」で
終了しますdb:pushは「!!! Caught Server Exception HTTP CODE:404」で終了します

この問題には回避策があります。しばらくの間、ruby 1.8.7(これにはrvmを使用しています)に切り替えて、herokuでdb操作を実行し、終了後にrubyを元に戻します。

于 2012-09-26T15:11:57.970 に答える
0

私は同じプロセスを実行し(HerokuにsqliteデータベースをPostgresに変換させます)、昨日もこの問題が発生していました。現在は機能しているようですので、Herokuの問題だったと思います。

于 2012-09-26T21:49:56.550 に答える