Files
CurrenciCombo/scripts/run-migrations.sh
defiQUG b118b2be9c
Some checks failed
Security Scan / Dependency Vulnerability Scan (push) Has been cancelled
Security Scan / OWASP ZAP Scan (push) Has been cancelled
docs: Update README and FINAL_STATUS for quick start setup and project readiness
- Added quick start instructions in README.md for first-time setup, including commands for complete setup, verification, and service start.
- Revised FINAL_STATUS.md to reflect the project's infrastructure completion and readiness for execution, detailing scripts created and documentation status.
2025-11-06 21:31:55 -08:00

100 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Run Database Migrations Script
echo -e "\n========================================"
echo -e " DATABASE MIGRATIONS"
echo -e "========================================\n"
# Check if we're in the right directory
if [ ! -d "orchestrator" ]; then
echo -e "\033[0;31m❌ Error: Must run from project root\033[0m"
echo -e " Current directory: $(pwd)"
exit 1
fi
# Check if .env exists
if [ ! -f "orchestrator/.env" ]; then
echo -e "\033[0;33m⚠ orchestrator/.env not found\033[0m"
echo -e " Creating from example..."
if [ -f "orchestrator/src/config/env.example" ]; then
cp orchestrator/src/config/env.example orchestrator/.env
echo -e " ✅ Created orchestrator/.env"
echo -e " \033[0;33m⚠ Please update DATABASE_URL in orchestrator/.env\033[0m"
else
echo -e " \033[0;31m❌ env.example not found\033[0m"
exit 1
fi
fi
# Check DATABASE_URL
if ! grep -q "DATABASE_URL=" orchestrator/.env 2>/dev/null; then
echo -e "\033[0;33m⚠ DATABASE_URL not set in orchestrator/.env\033[0m"
echo -e " Adding default DATABASE_URL..."
echo "" >> orchestrator/.env
echo "DATABASE_URL=postgresql://postgres:postgres@localhost:5432/comboflow" >> orchestrator/.env
echo "RUN_MIGRATIONS=true" >> orchestrator/.env
echo -e " ✅ Added default DATABASE_URL"
fi
# Check if database is accessible
echo -e "\n🔍 Checking database connection..."
DATABASE_URL=$(grep "^DATABASE_URL=" orchestrator/.env | cut -d '=' -f2- | tr -d '"' | tr -d "'")
if [ -z "$DATABASE_URL" ]; then
echo -e "\033[0;31m❌ DATABASE_URL is empty\033[0m"
exit 1
fi
# Extract connection details for testing
if [[ $DATABASE_URL =~ postgresql://([^:]+):([^@]+)@([^:]+):([^/]+)/(.+) ]]; then
DB_USER="${BASH_REMATCH[1]}"
DB_PASS="${BASH_REMATCH[2]}"
DB_HOST="${BASH_REMATCH[3]}"
DB_PORT="${BASH_REMATCH[4]}"
DB_NAME="${BASH_REMATCH[5]}"
echo -e " Host: $DB_HOST"
echo -e " Port: $DB_PORT"
echo -e " Database: $DB_NAME"
# Test connection with psql if available
if command -v psql &> /dev/null; then
if PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c "SELECT 1;" > /dev/null 2>&1; then
echo -e " \033[0;32m✅ Database connection successful\033[0m"
else
echo -e " \033[0;33m⚠ Could not connect to database\033[0m"
echo -e " Make sure PostgreSQL is running and accessible"
fi
else
echo -e " \033[0;33m⚠ psql not found, skipping connection test\033[0m"
fi
else
echo -e " \033[0;33m⚠ Could not parse DATABASE_URL\033[0m"
fi
# Run migrations
echo -e "\n🔄 Running database migrations..."
cd orchestrator || exit 1
if [ ! -d "node_modules" ]; then
echo -e "\033[0;33m⚠ node_modules not found. Installing dependencies...\033[0m"
npm install
fi
npm run migrate
if [ $? -eq 0 ]; then
echo -e "\n\033[0;32m✅ Migrations completed successfully\033[0m"
else
echo -e "\n\033[0;31m❌ Migrations failed\033[0m"
exit 1
fi
cd ..
echo -e "\n📝 Next steps:"
echo -e " 1. Verify health endpoint: http://localhost:8080/health"
echo -e " 2. Check database tables: SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';"
echo ""