sql >> データベース >  >> RDS >> PostgreSQL

エラー:DockerコンテナへのPostgresデータベースのインポート

    データベースダンプマウントを設定する

    ダンプにアクセスできるように、ダンプをコンテナにマウントする必要があります。 docker-compose.ymlのこのようなもの:

    db:
      volumes:
        - './db_dump:/db_dump'
    

    db_dumpという名前のローカルディレクトリを作成します db_dump.gzを配置します そこにファイルします。

    データベースコンテナを起動します

    POSTGRES_DBを使用します (質問で述べたように)環境内でデータベースを自動的に作成します。 dbを開始します Railsサーバーなしで単独で。

    docker-compose up -d db
    

    データのインポート

    データベースが利用可能になるまで数秒待ちます。次に、データをインポートします。

    docker-compose exec db gunzip /db_dump/db_dump.gz
    docker-compose exec db psql -U postgres -d dbname -f /db_dump/db_dump.gz
    docker-compose exec db rm -f /db_dump/db_dump.gz
    

    このインポートを実行するスクリプトを作成し、それをイメージに貼り付けてから、単一のdocker-composeコマンドを使用してそれを呼び出すこともできます。または、エントリポイントスクリプトでダンプファイルが存在するかどうかを確認し、存在する場合は解凍してインポートすることもできます...必要なことは何でも。

    railsサーバーを起動します

    docker-compose up -d web
    

    これを自動化する

    新しいセットアップの準備のためにこれを手作業で行っている場合は、これで完了です。これをツールチェーンに自動化する必要がある場合は、スクリプトでこれらの作業の一部を実行できます。コンテナを個別に起動し、その間にdbインポートを実行して、sleepを使用するだけです。 起動の遅延をカバーします。



    1. SQL Server DataTypesと同等のC#

    2. 2017年に最も人気のあるデータベースブログの投稿

    3. PHPとHTMLを介してmysqlのゼロ以外のフィールドのみを表示するにはどうすればよいですか?

    4. MySQLとMariaDBの6つの一般的な障害シナリオ、およびそれらを修正する方法