@@ -356,37 +356,35 @@ jobs:
356356 run : |
357357 BUILDTAG=${{ needs.Generate-Tag.outputs.tag_name }}
358358
359- # Determine environment and database
360- # Note: Using Aurora Serverless v2 endpoints (cypher.*.mor.org)
361- # Aurora has replaced the old RDS instances (db.*.mor.org)
359+ # Determine environment from branch
362360 if [ "${{ github.ref_name }}" == "test" ] || [[ "${{ github.ref_name }}" == cicd/* ]]; then
363361 ENV="dev"
364- DB_HOST="cypher.dev.mor.org"
365362 elif [ "${{ github.ref_name }}" == "stg" ]; then
366363 ENV="stg"
367- DB_HOST="cypher.stg.mor.org"
368364 elif [ "${{ github.ref_name }}" == "main" ]; then
369365 ENV="prd"
370- DB_HOST="cypher.mor.org"
371366 else
372367 echo "❌ Unsupported branch for deployment: ${{ github.ref_name }}"
373368 exit 1
374369 fi
375370
376- echo "🗄️ Running database migrations for environment: $ENV"
377- echo "📍 Database host: $DB_HOST"
378-
379- # Get database credentials from AWS Secrets Manager
371+ # Get database connection details from the dedicated DB-creds secret
372+ # (contains only POSTGRES_USER/PASSWORD/DB/HOST/PORT — no app secrets)
380373 SECRET_VALUE=$(aws secretsmanager get-secret-value \
381- --secret-id "${ENV}-morpheus-api" \
374+ --secret-id "${ENV}-morpheus-api-rds-proxy-credentials " \
382375 --query SecretString --output text)
383376
384377 DB_USER=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_USER')
385378 DB_PASSWORD=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_PASSWORD')
386379 DB_NAME=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_DB')
380+ DB_HOST=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_HOST')
381+ DB_PORT=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_PORT')
382+
383+ echo "🗄️ Running database migrations for environment: $ENV"
384+ echo "📍 Database host: $DB_HOST"
387385
388386 # Set database URL for migrations
389- export DATABASE_URL="postgresql+asyncpg://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:5432 /${DB_NAME}"
387+ export DATABASE_URL="postgresql+asyncpg://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT} /${DB_NAME}"
390388 export ENVIRONMENT="$ENV"
391389
392390 # Create backup point (get current revision before migration)
@@ -793,36 +791,33 @@ jobs:
793791 exit 0
794792 fi
795793
796- # Determine environment and database
797- # Note: Using Aurora Serverless v2 endpoints (cypher.*.mor.org)
798- # Aurora has replaced the old RDS instances (db.*.mor.org)
794+ # Determine environment from branch
799795 if [ "${{ github.ref_name }}" == "test" ] || [[ "${{ github.ref_name }}" == cicd/* ]]; then
800796 ENV="dev"
801- DB_HOST="cypher.dev.mor.org"
802797 elif [ "${{ github.ref_name }}" == "stg" ]; then
803798 ENV="stg"
804- DB_HOST="cypher.stg.mor.org"
805799 elif [ "${{ github.ref_name }}" == "main" ]; then
806800 ENV="prd"
807- DB_HOST="cypher.mor.org"
808801 else
809802 echo "❌ Unknown environment for rollback"
810803 exit 1
811804 fi
812805
813- echo "📍 Rolling back database in environment: $ENV"
814- echo "🔄 Target rollback revision: ${{ env.PRE_MIGRATION_REVISION }}"
815-
816- # Get database credentials from AWS Secrets Manager
806+ # Get database connection details from the dedicated DB-creds secret
817807 SECRET_VALUE=$(aws secretsmanager get-secret-value \
818- --secret-id "${ENV}-morpheus-api" \
808+ --secret-id "${ENV}-morpheus-api-rds-proxy-credentials " \
819809 --query SecretString --output text)
820810
821811 DB_USER=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_USER')
822812 DB_PASSWORD=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_PASSWORD')
823813 DB_NAME=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_DB')
814+ DB_HOST=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_HOST')
815+ DB_PORT=$(echo "$SECRET_VALUE" | jq -r '.POSTGRES_PORT')
816+
817+ echo "📍 Rolling back database in environment: $ENV"
818+ echo "🔄 Target rollback revision: ${{ env.PRE_MIGRATION_REVISION }}"
824819
825- export DATABASE_URL="postgresql+asyncpg://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:5432 /${DB_NAME}"
820+ export DATABASE_URL="postgresql+asyncpg://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT} /${DB_NAME}"
826821
827822 # Check current revision before rollback
828823 CURRENT_REV=$(poetry run alembic current --verbose 2>/dev/null | grep "Current revision" | awk '{print $NF}' || echo "none")
0 commit comments