Update script to apply multiple database migration scripts
Modified update_from_git.sh to iterate and apply all .sql files in the database-schema directory, excluding schema.sql, ensuring database synchronization with applied changes. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 890ee964-4158-4242-aa34-9b7e172a3fcb Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/MkBJZ0L
This commit is contained in:
parent
369c268bc1
commit
95aff1cc0e
@ -108,39 +108,57 @@ fi
|
|||||||
if [ "$UPDATE_DB" = true ]; then
|
if [ "$UPDATE_DB" = true ]; then
|
||||||
echo -e "\n${BLUE}🗄️ Sincronizzazione schema database...${NC}"
|
echo -e "\n${BLUE}🗄️ Sincronizzazione schema database...${NC}"
|
||||||
|
|
||||||
SCHEMA_FILE="$IDS_DIR/database-schema/schema.sql"
|
SCHEMA_DIR="$IDS_DIR/database-schema"
|
||||||
|
|
||||||
if [ -f "$SCHEMA_FILE" ]; then
|
|
||||||
# Carica configurazione database
|
# Carica configurazione database
|
||||||
if [ -f "$IDS_DIR/.env" ]; then
|
if [ ! -f "$IDS_DIR/.env" ]; then
|
||||||
source "$IDS_DIR/.env"
|
|
||||||
|
|
||||||
echo -e "${YELLOW}⚠️ Applicazione schema da git al database${NC}"
|
|
||||||
echo -e "${YELLOW} Database: ${PGDATABASE}${NC}"
|
|
||||||
read -p "Confermi? (y/n) " -n 1 -r
|
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
# Applica schema
|
|
||||||
export PGPASSWORD="$PGPASSWORD"
|
|
||||||
psql -h "${PGHOST:-127.0.0.1}" -p "${PGPORT:-5432}" -U "${PGUSER}" -d "${PGDATABASE}" < "$SCHEMA_FILE"
|
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo -e "${GREEN}✅ Schema database sincronizzato${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}❌ Errore sincronizzazione schema${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "${YELLOW}⏭️ Sincronizzazione schema saltata${NC}"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "${RED}❌ File .env non trovato${NC}"
|
echo -e "${RED}❌ File .env non trovato${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source "$IDS_DIR/.env"
|
||||||
|
export PGPASSWORD="$PGPASSWORD"
|
||||||
|
|
||||||
|
# Trova tutti gli script SQL (escludi schema.sql che è solo snapshot)
|
||||||
|
SQL_SCRIPTS=$(find "$SCHEMA_DIR" -maxdepth 1 -name "*.sql" ! -name "schema.sql" -type f | sort)
|
||||||
|
|
||||||
|
if [ -z "$SQL_SCRIPTS" ]; then
|
||||||
|
echo -e "${YELLOW}⚠️ Nessuno script SQL trovato in database-schema/${NC}"
|
||||||
|
echo -e "${YELLOW} (schema.sql è solo uno snapshot, non viene applicato)${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW}⚠️ File schema.sql non trovato in database-schema/${NC}"
|
echo -e "${YELLOW}⚠️ APPLICAZIONE MODIFICHE AL DATABASE${NC}"
|
||||||
echo -e "${YELLOW} Esegui ./deployment/export_db_schema.sh sul server di riferimento${NC}"
|
echo -e "${YELLOW} Database: ${PGDATABASE}@${PGHOST}${NC}"
|
||||||
|
echo -e "${YELLOW} Script da applicare:${NC}"
|
||||||
|
|
||||||
|
# Mostra lista script
|
||||||
|
for script in $SQL_SCRIPTS; do
|
||||||
|
echo -e "${YELLOW} • $(basename $script)${NC}"
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Confermi applicazione modifiche? (y/n) " -n 1 -r
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
# Applica tutti gli script in ordine
|
||||||
|
for script in $SQL_SCRIPTS; do
|
||||||
|
SCRIPT_NAME=$(basename "$script")
|
||||||
|
echo -e "\n${BLUE}📄 Applicando $SCRIPT_NAME...${NC}"
|
||||||
|
|
||||||
|
psql -h "${PGHOST:-127.0.0.1}" -p "${PGPORT:-5432}" -U "${PGUSER}" -d "${PGDATABASE}" -f "$script"
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}✅ $SCRIPT_NAME applicato con successo${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Errore applicando $SCRIPT_NAME${NC}"
|
||||||
|
echo -e "${YELLOW}⚠️ Gli script successivi NON saranno applicati${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "\n${GREEN}✅ Tutti gli script SQL applicati con successo${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⏭️ Sincronizzazione database saltata${NC}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user