From 729850fbc61f838414c3b665cbd13096970c5e1b Mon Sep 17 00:00:00 2001 From: marco370 <48531002-marco370@users.noreply.replit.com> Date: Thu, 16 Oct 2025 14:08:47 +0000 Subject: [PATCH] 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 --- .replit | 4 ++++ deploy/deploy.sh | 29 +++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.replit b/.replit index 048618b..597ad14 100644 --- a/.replit +++ b/.replit @@ -19,6 +19,10 @@ externalPort = 80 localPort = 33035 externalPort = 3001 +[[ports]] +localPort = 36403 +externalPort = 3003 + [[ports]] localPort = 41343 externalPort = 3000 diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 81eeab6..253c0d7 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -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" - - # 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)" + # 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" + + # 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