Prepare production deploy
This commit is contained in:
@@ -82,11 +82,11 @@ log "🚀 Starting safe migration for environment: $ENVIRONMENT"
|
||||
|
||||
# Validate environment
|
||||
case $ENVIRONMENT in
|
||||
"Development"|"SandboxLocal"|"Production"|"Oda")
|
||||
"Development"|"SandboxLocal"|"ProductionLocal"|"Oda")
|
||||
log "✅ Environment '$ENVIRONMENT' is valid"
|
||||
;;
|
||||
*)
|
||||
error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxLocal, Production, or Oda"
|
||||
error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxLocal, ProductionLocal, or Oda"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -423,12 +423,40 @@ log "📦 Step 2: Checking if database backup is needed..."
|
||||
DB_EXISTS=false
|
||||
if PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "postgres" -c "SELECT 1 FROM pg_database WHERE datname='$DB_NAME';" 2>/dev/null | grep -q "1 row"; then
|
||||
DB_EXISTS=true
|
||||
log "✅ Target database '$DB_NAME' exists - proceeding with backup"
|
||||
log "✅ Target database '$DB_NAME' exists"
|
||||
else
|
||||
log "ℹ️ Target database '$DB_NAME' does not exist - skipping backup"
|
||||
fi
|
||||
|
||||
# Ask user if they want to create a backup
|
||||
CREATE_BACKUP=false
|
||||
if [ "$DB_EXISTS" = "true" ]; then
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "📦 DATABASE BACKUP"
|
||||
echo "=========================================="
|
||||
echo "Database: $DB_HOST:$DB_PORT/$DB_NAME"
|
||||
echo "Environment: $ENVIRONMENT"
|
||||
echo ""
|
||||
echo "Would you like to create a backup before proceeding?"
|
||||
echo "⚠️ It is highly recommended to create a backup for safety."
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
read -p "🔧 Create database backup? (y/n, default: y): " create_backup
|
||||
create_backup=${create_backup:-y} # Default to 'y' if user just presses Enter
|
||||
|
||||
if [[ "$create_backup" =~ ^[Yy]$ ]]; then
|
||||
log "✅ User chose to create backup - proceeding with backup"
|
||||
CREATE_BACKUP=true
|
||||
else
|
||||
warn "⚠️ User chose to skip backup - proceeding without backup"
|
||||
warn " This is not recommended. Proceed at your own risk!"
|
||||
CREATE_BACKUP=false
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$DB_EXISTS" = "true" ] && [ "$CREATE_BACKUP" = "true" ]; then
|
||||
# Define the actual backup file path (absolute)
|
||||
BACKUP_FILE="$BACKUP_DIR/managing_${ENVIRONMENT}_backup_${TIMESTAMP}.sql"
|
||||
# Backup file display path (relative to script execution)
|
||||
@@ -660,7 +688,9 @@ if [ "$DB_HAS_TABLES" = "true" ]; then
|
||||
error "❌ Failed to generate complete migration script."
|
||||
error " EF CLI Output: $ERROR_OUTPUT"
|
||||
error " Check the .NET project logs for detailed errors."
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Fallback: generate script without specifying from migration
|
||||
@@ -672,7 +702,9 @@ if [ "$DB_HAS_TABLES" = "true" ]; then
|
||||
error "❌ Failed to generate idempotent migration script."
|
||||
error " EF CLI Output: $ERROR_OUTPUT"
|
||||
error " Check the .NET project logs for detailed errors."
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
@@ -691,7 +723,9 @@ else
|
||||
error "❌ Failed to generate complete migration script."
|
||||
error " EF CLI Output: $ERROR_OUTPUT"
|
||||
error " Check the .NET project logs for detailed errors."
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Fallback: generate script without specifying from migration
|
||||
@@ -703,7 +737,9 @@ else
|
||||
error "❌ Failed to generate fallback migration script."
|
||||
error " EF CLI Output: $ERROR_OUTPUT"
|
||||
error " Check the .NET project logs for detailed errors."
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -776,7 +812,9 @@ fi
|
||||
error "❌ Database migration failed during final update."
|
||||
error " EF CLI Output: $ERROR_OUTPUT"
|
||||
error " Check the .NET project logs for detailed errors."
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
error " Backup script available at: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -817,7 +855,9 @@ log "✅ Kept last 5 backups for $ENVIRONMENT environment in $BACKUP_DIR_NAME/$E
|
||||
|
||||
# Success Summary
|
||||
log "🎉 Migration completed successfully for environment: $ENVIRONMENT!"
|
||||
log "📁 EF Core Migration SQL Script: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
log "📁 EF Core Migration SQL Script: $BACKUP_FILE_DISPLAY"
|
||||
fi
|
||||
log "📝 Full Log file: $LOG_FILE"
|
||||
|
||||
echo ""
|
||||
@@ -827,6 +867,10 @@ echo "=========================================="
|
||||
echo "Environment: $ENVIRONMENT"
|
||||
echo "Timestamp: $TIMESTAMP"
|
||||
echo "Status: ✅ SUCCESS"
|
||||
echo "EF Core SQL Backup: $BACKUP_FILE_DISPLAY"
|
||||
if [ "$CREATE_BACKUP" = "true" ] && [ -n "$BACKUP_FILE_DISPLAY" ]; then
|
||||
echo "EF Core SQL Backup: $BACKUP_FILE_DISPLAY"
|
||||
else
|
||||
echo "Database Backup: Skipped by user"
|
||||
fi
|
||||
echo "Log: $LOG_FILE"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user