#!/bin/bash set -e echo "🔄 Waiting for database to be ready..." until PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -U "$DATABASE_USER" -d "$DATABASE_NAME" -c '\q' 2>/dev/null; do echo "⏳ PostgreSQL is unavailable - sleeping" sleep 2 done echo "✅ PostgreSQL is up - checking if database is initialized..." # Check if users table exists (indicating database is already set up) TABLE_EXISTS=$(PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -U "$DATABASE_USER" -d "$DATABASE_NAME" -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = 'users');" 2>/dev/null || echo "f") if [ "$TABLE_EXISTS" = "t" ]; then echo "✅ Database already initialized, skipping setup." else echo "📦 First time setup - creating tables and seeding data..." # Run the SQL scripts directly echo "Creating tables..." PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -U "$DATABASE_USER" -d "$DATABASE_NAME" -f /app/scripts/create-all-tables.sql echo "🌱 Seeding initial data..." PGPASSWORD=$DATABASE_PASSWORD psql -h "$DATABASE_HOST" -U "$DATABASE_USER" -d "$DATABASE_NAME" -f /app/scripts/seed-initial-data.sql echo "✅ Database initialized successfully!" fi echo "✅ Database ready!"