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:
parent
773966a6ea
commit
729850fbc6
4
.replit
4
.replit
@ -19,6 +19,10 @@ externalPort = 80
|
||||
localPort = 33035
|
||||
externalPort = 3001
|
||||
|
||||
[[ports]]
|
||||
localPort = 36403
|
||||
externalPort = 3003
|
||||
|
||||
[[ports]]
|
||||
localPort = 41343
|
||||
externalPort = 3000
|
||||
|
||||
@ -26,12 +26,16 @@ 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
|
||||
# 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
|
||||
@ -41,6 +45,7 @@ if command -v pg_dump &> /dev/null; then
|
||||
# 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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user