31 lines
957 B
Bash
Executable File
31 lines
957 B
Bash
Executable File
#!/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!"
|