sql >> Databáze >  >> RDS >> PostgreSQL

flyway se nemůže připojit k postgresovému kontejneru v rámci skriptu docker-entrypoint-initdb.d

Měl jsem stejný problém se spuštěním flyway při vytváření obrázku dockeru pro moji databázi na základě obrázku postgres:10.5. Před spuštěním flyway jsem přidal následující do svého entrypoint.sh, abych potvrdil, že problém, který jsem viděl, byl způsoben změnou docker-entrypoint.sh, kterou @Nick Maraston zveřejnil ve své odpovědi:

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

Výsledkem bylo, že výše uvedený kód se věčně opakoval. Poté jsem jej nahradil následujícím kódem pro restartování databáze naslouchající připojení TCP/IP na localhost:

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

Spíše než takto restartovat databázi by bylo čistším řešením použít JDBC -socketFactory možnost je vysvětlena zde .



  1. ORA-00942:Tabulka nebo pohled neexistuje pro kombinovanou tabulku případů a sloupce

  2. Jak omezit dotaz SHOW TABLES

  3. Jak najít duplicitní data mezi dvěma tabulkami a odstranit na jedné

  4. Postgres Query Plan, proč je odhad řádku tak špatný