gem yaml_dbを使用して私のPostgres開発データベースをプロダクションにエクスポートします。これは、Ruby on Railsアプリケーションがある仮想マシン上にあります。開発から本番へのデータベースのエクスポート
data.ymlを作成するのにrake db:data:dump RAILS_ENV=development
を使用していますが、データをインポートするのにrake db:data:load RAILS_ENV=production
を使用していますが、インポート時にエラーが発生しています。
rake aborted!
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block
: DELETE FROM "improvement_actions"
PG::FeatureNotSupported: ERROR: cannot truncate a table referenced in a foreign key constraint
DETAIL: Table "comments" references "improvement_actions".
これを解決する方法を知っている人はいますか?または、データベースをエクスポートする別の方法がありますか?
私はちょうどいくつかのチュートリアルでそれを見たので、yamlで試しました。 pg_dumpとpg_restoreを使用して、ローカルホストと仮想マシンの間でどうすればいいですか? – terrorista
正確な詳細はもちろんホストによって異なりますが、通常はscpを使用してVMにダンプをコピーし、sshを使用してVMにログインし、pg_restoreを実行します。 –
VMが使用するデータベースが開発マシンから直接アクセスできる場合は、ラップトップでpg_restoreを実行し、VMのデータベースをポイントすることができます。セキュリティ上の理由から、外部からアクセスできない可能性があります。 –