#!/bin/bash # Database initialization script for Copper Tone Technologies platform set -e # Database connection variables (can be overridden by environment) DB_HOST="${DB_HOST:-db}" DB_USER="${DB_USER:-user}" DB_PASSWORD="${DB_PASSWORD:-password}" DB_NAME="${DB_NAME:-coppertone_db}" MIGRATIONS_DIR="${MIGRATIONS_DIR:-/migrations}" echo "Initializing database: $DB_NAME on $DB_HOST" # Wait for PostgreSQL to be ready echo "Waiting for PostgreSQL to be ready..." until PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -U "$DB_USER" -d "postgres" -c '\q' 2>/dev/null; do echo "PostgreSQL is unavailable - sleeping" sleep 2 done echo "PostgreSQL is up - executing migrations" # Run migrations in order for migration in $(ls -1 $MIGRATIONS_DIR/*.up.sql | sort); do echo "Applying migration: $(basename $migration)" PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -f "$migration" done echo "Database initialization complete!"