ids.alfacom.it/database-schema/apply_migrations.sh
marco370 3e9b9f110a Improve environment variable loading for deployment scripts
Update `apply_migrations.sh`, `cleanup_database.sh`, and `debug_system.sh` to robustly load environment variables from the `.env` file, ensuring correct `DATABASE_URL` availability and improving script execution reliability.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: b9098694-dc08-42d0-9fe9-48515e4e82a0
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/4LjHWWz
2025-11-21 16:57:55 +00:00

65 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# =============================================================================
# IDS - Applica Migrazioni Database
# =============================================================================
# Applica tutti gli script SQL in database-schema/migrations/ in ordine
# =============================================================================
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MIGRATIONS_DIR="$SCRIPT_DIR/migrations"
IDS_DIR="$(dirname "$SCRIPT_DIR")"
# Carica variabili ambiente ed esportale
if [ -f "$IDS_DIR/.env" ]; then
set -a
source "$IDS_DIR/.env"
set +a
fi
# Colori
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${BLUE}🗄️ Applicazione migrazioni database...${NC}"
# Verifica DATABASE_URL
if [ -z "$DATABASE_URL" ]; then
echo -e "${RED}❌ DATABASE_URL non impostato${NC}"
echo -e "${YELLOW} File .env non trovato o DATABASE_URL mancante${NC}"
exit 1
fi
# Crea directory migrations se non esiste
mkdir -p "$MIGRATIONS_DIR"
# Conta migrazioni
MIGRATION_COUNT=$(find "$MIGRATIONS_DIR" -name "*.sql" 2>/dev/null | wc -l)
if [ "$MIGRATION_COUNT" -eq 0 ]; then
echo -e "${YELLOW}⚠️ Nessuna migrazione da applicare${NC}"
exit 0
fi
echo -e "${BLUE}📋 Trovate $MIGRATION_COUNT migrazioni${NC}"
# Applica ogni migrazione in ordine
for migration in $(find "$MIGRATIONS_DIR" -name "*.sql" | sort); do
MIGRATION_NAME=$(basename "$migration")
echo -e "${BLUE} Applicando: $MIGRATION_NAME${NC}"
if psql "$DATABASE_URL" -f "$migration" > /dev/null 2>&1; then
echo -e "${GREEN}$MIGRATION_NAME applicata${NC}"
else
echo -e "${RED} ❌ Errore in $MIGRATION_NAME${NC}"
psql "$DATABASE_URL" -f "$migration"
exit 1
fi
done
echo -e "${GREEN}✅ Tutte le migrazioni applicate con successo${NC}"