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

flywayがdocker-entrypoint-initdb.dスクリプト内でpostgresコンテナに接続できません

    postgres:10.5イメージに基づいてデータベースのDockerイメージを作成するときに、flywayの実行で同じ問題が発生しました。 flywayを実行する前に、entrypoint.shに以下を追加して、表示されていた問題がdocker-entrypoint.shの変更@NickMarastonが彼の回答に投稿したことが原因であることを確認しました。

    echo "$(date) - waiting for database to start"
    while ! pg_isready -h localhost -p 5432 -d $POSTGRES_DB
    do
        echo "$(date) - waiting for database to start"
        sleep 10
    done
    

    その結果、上記のコードは永遠にループしていました。次に、それを次のコードに置き換えて、ローカルホストでTCP/IP接続をリッスンしているデータベースを再起動します。

    pg_ctl -D "$PGDATA" -m fast -w stop
    pg_ctl -D "$PGDATA" \
                -o "-c listen_addresses='localhost'" \
                -w start
    

    このようにデータベースを再起動するのではなく、JDBC -socketFactoryを使用する方がよりクリーンな解決策になります。 オプションの説明こちら 。



    1. jdbcTimestampまたはDateを使用する場合のOracleとの無視できない実行プランの違い

    2. すべてのストアドプロシージャを一覧表示するクエリ

    3. --skip-grant-tablesでMySQLを起動する方法は?

    4. Ruby on Rails(MySQL)の列名として「end」を使用する