Improve database backup and restore process for deployment

Update deploy script to correctly source .env file, handle missing DB variables, and use --dbname for pg_dump/psql commands.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 42d8028a-fa71-4ec2-938c-e43eedf7df01
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80/42d8028a-fa71-4ec2-938c-e43eedf7df01/eg9yHD6
This commit is contained in:
marco370 2025-10-16 14:08:47 +00:00
parent 773966a6ea
commit 729850fbc6
2 changed files with 21 additions and 12 deletions

View File

@ -19,6 +19,10 @@ externalPort = 80
localPort = 33035
externalPort = 3001
[[ports]]
localPort = 36403
externalPort = 3003
[[ports]]
localPort = 41343
externalPort = 3000

View File

@ -26,21 +26,26 @@ BACKUP_FILE="$BACKUP_DIR/backup_$(date +%Y%m%d_%H%M%S).sql"
# Load env vars
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | xargs)
source .env
fi
# Esegui backup PostgreSQL
if command -v pg_dump &> /dev/null; then
PGPASSWORD=$PGPASSWORD pg_dump -h $PGHOST -U $PGUSER -d $PGDATABASE > $BACKUP_FILE
echo "✅ Backup salvato: $BACKUP_FILE"
# Controlla che le variabili siano definite
if [ -z "$PGDATABASE" ] || [ -z "$PGUSER" ]; then
echo "⚠️ Variabili DB non trovate nel .env, skip backup"
else
PGPASSWORD=$PGPASSWORD pg_dump -h ${PGHOST:-localhost} -U $PGUSER --dbname=$PGDATABASE > $BACKUP_FILE
echo "✅ Backup salvato: $BACKUP_FILE"
# Comprimi backup
gzip $BACKUP_FILE
echo "✅ Backup compresso: ${BACKUP_FILE}.gz"
# Comprimi backup
gzip $BACKUP_FILE
echo "✅ Backup compresso: ${BACKUP_FILE}.gz"
# Pulisci backup vecchi (> 30 giorni)
find $BACKUP_DIR -name "backup_*.sql.gz" -mtime +30 -delete
echo "🧹 Backup vecchi eliminati (retention: 30 giorni)"
# Pulisci backup vecchi (> 30 giorni)
find $BACKUP_DIR -name "backup_*.sql.gz" -mtime +30 -delete
echo "🧹 Backup vecchi eliminati (retention: 30 giorni)"
fi
else
echo "⚠️ pg_dump non trovato, skip backup"
fi
@ -88,7 +93,7 @@ else
LATEST_BACKUP=$(ls -t $BACKUP_DIR/backup_*.sql.gz 2>/dev/null | head -1)
if [ -f "$LATEST_BACKUP" ]; then
echo "📦 Ripristino da: $LATEST_BACKUP"
gunzip -c $LATEST_BACKUP | PGPASSWORD=$PGPASSWORD psql -h $PGHOST -U $PGUSER -d $PGDATABASE
gunzip -c $LATEST_BACKUP | PGPASSWORD=$PGPASSWORD psql -h ${PGHOST:-localhost} -U $PGUSER --dbname=$PGDATABASE
echo "✅ Database ripristinato"
fi