#!/usr/bin/env bash set -Eeuo pipefail log() { echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] $*"; } fail() { echo "ERROR: $*" >&2; exit 1; } : "${DB_HOST:?DB_HOST required}" : "${DB_PORT:?DB_PORT required}" : "${DB_NAME:?DB_NAME required}" : "${DB_USER:?DB_USER required}" : "${DB_PASS:?DB_PASS required}" export PGPASSWORD="$DB_PASS" log "Checking if database '$DB_NAME' exists..." EXISTS=$(psql -U "$DB_USER" -h "$DB_HOST" -p "$DB_PORT" -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='${DB_NAME}'" | tr -d '[:space:]') || true if [[ "$EXISTS" == "1" ]]; then log "Database '$DB_NAME' already exists. Nothing to do." exit 0 fi log "Creating database '$DB_NAME'..." psql -U "$DB_USER" -h "$DB_HOST" -p "$DB_PORT" -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE \"$DB_NAME\";" log "Database '$DB_NAME' created successfully."