diff --git a/scripts/create-database.sh b/scripts/create-database.sh index 7b77c4b..0ab518a 100755 --- a/scripts/create-database.sh +++ b/scripts/create-database.sh @@ -23,6 +23,35 @@ fi PGUSER="${AI_GATEWAY_PG_USER:-easyai}" DB_NAME="${AI_GATEWAY_DATABASE_NAME:-easyai_ai_gateway}" +wait_for_postgres() { + local status + + status="$(docker inspect "$CONTAINER" --format '{{.State.Status}}')" + if [[ "$status" != "running" ]]; then + echo "[ai-gateway] starting PostgreSQL container: ${CONTAINER}" + docker start "$CONTAINER" >/dev/null + fi + + for _ in {1..30}; do + if docker exec "$CONTAINER" \ + pg_isready -U "$PGUSER" -d postgres >/dev/null 2>&1; then + return 0 + fi + + status="$(docker inspect "$CONTAINER" --format '{{.State.Status}}')" + if [[ "$status" != "running" ]]; then + echo "[ai-gateway] PostgreSQL container stopped before becoming ready: ${CONTAINER} (${status})" >&2 + return 1 + fi + sleep 1 + done + + echo "[ai-gateway] timed out waiting for PostgreSQL container: ${CONTAINER}" >&2 + return 1 +} + +wait_for_postgres + version_num="$( docker exec "$CONTAINER" \ psql -U "$PGUSER" -d postgres -tAc "SHOW server_version_num" \