1

データベースを Heroku に移行しようとすると、移行エラーが発生します。このアドバイスを提供するここで解決策を見つけました:

rake db:create
rake db:schema:load
rake db:migrate

しかし、違いはありません。エラーは次のように始まります。

PG::UndefinedColumn: ERROR:  column "property_id" of relation "bookings" does not exist

これは後の移行でローカルに変更されたため、property_id 列はもうありません。ところで、私の移行はローカルで動作するのに、なぜ Heroku で動作しないのでしょうか?

4

2 に答える 2

0

列「property_id」があるかどうかを確認できるように、スキーマを投稿していただけますか。

そうでない場合は、この列 property_id を予約クラスに追加する必要があります。

また、試してみてください

rake db:drop rake db:migrate

何が起こるのですか?

于 2013-09-08T15:29:51.837 に答える
0

heroku postgres データベースとローカル データベースの間でデータを移行しましたか? heroku インスタンスの schema_migrations テーブルが実際と同期していないようです。

すべてのデータを失う可能性がある場合は、最初からやり直します。次のコマンドは、データベース全体を消去し、すべてのテーブルを破棄します。

heroku pg:reset # destructive action, careful

その後、もう一度heroku run rake db:migrateやり直してください。それはうまくいくはずです。

それでもうまくいかない場合は、schema_migrations テーブルを手動で検査し、適切な移行が適用されていることを確認し、おそらく手動で一貫性のある状態に戻す必要があります。

この状況は非常に異常であり、このデータまたはスキーマを手動で操作した場合にのみ発生する可能性があります。postgres はトランザクション DDL をサポートしているためheroku run rake db:migrate、エラーが発生した場合、移行全体がロールバックされ、データベースが一貫した状態のままになるため、単独では発生しませんでした。

于 2013-09-08T17:01:20.307 に答える