2017-07-28 22 views
0

私はレールアプリを生産用のドッキング用のコンテナに移そうとしています。プロダクション用のダンプをコンテナにロードする最後のステップです。それが失敗している二度目ですが、rails error:relation already exists

は、私はこの前に一度読み込んだ

pg_dump pdfcat_production > ~/pdfcat-20170728.dump 

私の現在の本番データベースのバックアップを行ってきた、それが働きました。

docker-compose run -e 'RAILS_ENV=production' app rake db:drop 
docker-compose run -e 'RAILS_ENV=production' app rake db:create 
cat ~/pdfcat-20170727.dump | docker exec -i 79766cf70617 psql -Upostgres 

このエラーが発生します。

ERROR: relation "categories" already exists 
ERROR: role "pdfcat" does not exist 
ERROR: relation "categories_id_seq" already exists 
ERROR: role "pdfcat" does not exist 
ALTER SEQUENCE 
ERROR: relation "clients" already exists 
ERROR: role "pdfcat" does not exist 
ERROR: relation "clients_id_seq" already exists 
ERROR: role "pdfcat" does not exist 

これらのエラーがすべて終了した後、私はWebアプリケーションを読み込むことができません。

+0

データがコンテナに残っていることをご存知でしたか?コンテナを取り出してからロードすると、エラーは発生しません。しかし、この読み込みプロセスをdockerファイルに含めると、データがイメージにロードされ、イメージを使用する準備ができます。 – Ayushya

+0

postgresコンテナを削除しようとすると、デーモンからエラー応答が返されます:ドライバ "aufs"が失敗しました79766cf7061767655837750e72a0d12046081b5946562b67b576e0c6abfbc023のためにルートファイルシステムを削除する:名前の変更は/ var/libに/ドッキングウィンドウ/ AUFSを/ mnt/178acb7c7bb25ef51b5c993bfd66f9e8689abe8e372808643a909aef326b2c4bの/ var/libに/ドッキングウィンドウ/ AUFSを/ mnt/178acb7c7bb25ef51b5c993bfd66f9e8689abe8e372808643a909aef326b2c4b除去: – map7

+0

デバイスまたはリソース忙しいどのようにそれを削除していますか? 'docker rm '? – Ayushya

答えて

0

データが既にコンテナに読み込まれているため、再作成されないため、2回目の読み込みでエラーが発生しています。今回はデータをロードする必要はありません。

現在の状況では、コンテナを削除して新たに開始することができます。今回は、データロードによってエラーが発生することはありません。コンテナを取り除くには、docker rm <contianer_id>を使用してください。コンテナを停止または削除しているときに問題がある場合は、システムを再起動します。これはフェールプルーフであり、すべてのコンテナを停止します。ドッカーサービスを再開することも1つの選択肢になります。

どのシステムでもデータを初めて読み込むことができるイメージを準備する場合は、このデータ読み込みプロセスをdockerファイルに含めることができます。

+0

私はこのシステムを再起動できません。別の方法がありますか? – map7

関連する問題