#!/bin/bash set -e # This script runs when the PostgreSQL container is first created # It ensures the database is properly initialized # # Keep this database-name agnostic: the staging stack (docker-compose.test.yml) # runs the same script with POSTGRES_DB=qrmaster_test. A hardcoded name aborts # the init, and the container never becomes healthy. # Must stay LF-only and executable - Postgres sources non-executable init # scripts, and CRLF breaks them on the first line. echo "🚀 Initializing QR Master database..." # The database itself is already created by POSTGRES_DB psql -v ON_ERROR_STOP=1 -v dbname="$POSTGRES_DB" --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL -- Enable required extensions CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- Set timezone ALTER DATABASE :"dbname" SET timezone TO 'UTC'; EOSQL echo "✅ Database initialization complete!" echo "📊 Database: $POSTGRES_DB" echo "👤 User: $POSTGRES_USER" echo "🌐 Ready to accept connections on port 5432"