Add ability to export database schema structure to Git

Modify deploy-to-gitlab.sh to export database schema DDL to database-schema/schema.sql, update commit messages, and adjust versioning.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 8bc17630-4554-4a5a-bac3-2cb45209a6fa
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/CGAMfXu
This commit is contained in:
marco370 2025-11-17 17:07:31 +00:00
parent 0d2a3f7359
commit 3dc1397f20
4 changed files with 47 additions and 13 deletions

7
.gitignore vendored
View File

@ -19,7 +19,6 @@ backups/
*.log.* *.log.*
# Database schema (SOLO schema.sql committato, NO dati) # Database schema (SOLO schema.sql committato, NO dati)
database-schema/*
!database-schema/ !database-schema/
!database-schema/schema.sql !database-schema/schema.sql
@ -37,9 +36,9 @@ build/
python_ml/models/*.pkl python_ml/models/*.pkl
python_ml/models/*.joblib python_ml/models/*.joblib
# Database dumps # Database dumps (ESCLUDI database-schema/schema.sql)
*.sql database-backups/*.sql
*.sql.gz database-backups/*.sql.gz
*.dump *.dump
# IDE # IDE

View File

@ -14,10 +14,6 @@ run = ["npm", "run", "start"]
localPort = 5000 localPort = 5000
externalPort = 80 externalPort = 80
[[ports]]
localPort = 38641
externalPort = 3000
[env] [env]
PORT = "5000" PORT = "5000"

View File

@ -0,0 +1,12 @@
-- ============================================================================
-- IDS - Database Schema (PostgreSQL)
-- ============================================================================
-- Questo file contiene SOLO la struttura del database (DDL)
-- NO dati sensibili, NO password, NO log
--
-- Generato automaticamente con: ./deployment/export_db_schema.sh
-- Sincronizzato con: ./update_from_git.sh --db
-- ============================================================================
-- Schema sarà esportato automaticamente dal server production
-- Questo è un placeholder

View File

@ -115,7 +115,34 @@ NEW_VERSION="$MAJOR.$MINOR.$PATCH"
log_success "Nuova versione: $NEW_VERSION" log_success "Nuova versione: $NEW_VERSION"
# ============================================================================= # =============================================================================
# 4. BACKUP DATABASE POSTGRESQL # 4. EXPORT DATABASE SCHEMA (solo struttura per git)
# =============================================================================
log_info "Export schema database (solo DDL, no dati)..."
# Directory schema
SCHEMA_DIR="database-schema"
mkdir -p $SCHEMA_DIR
SCHEMA_FILE="$SCHEMA_DIR/schema.sql"
# Controlla se DATABASE_URL è disponibile
if [ -z "$DATABASE_URL" ]; then
log_warning "DATABASE_URL non trovato, salto export schema"
else
log_info "Esporto schema: $SCHEMA_FILE"
# Export solo schema (--schema-only = NO DATA)
if pg_dump "$DATABASE_URL" --schema-only --no-owner --no-privileges > "$SCHEMA_FILE"; then
TABLES=$(grep -c "CREATE TABLE" "$SCHEMA_FILE" || echo 0)
SCHEMA_SIZE=$(du -h "$SCHEMA_FILE" | cut -f1)
log_success "Schema esportato: $TABLES tabelle, $SCHEMA_SIZE"
else
log_warning "Export schema fallito (non critico, continuo)"
fi
fi
# =============================================================================
# 5. BACKUP DATABASE POSTGRESQL (completo, NON committato su git)
# ============================================================================= # =============================================================================
log_info "Avvio backup database PostgreSQL..." log_info "Avvio backup database PostgreSQL..."
@ -154,7 +181,7 @@ else
fi fi
# ============================================================================= # =============================================================================
# 5. AGGIORNA version.json # 6. AGGIORNA version.json
# ============================================================================= # =============================================================================
log_info "Aggiorno version.json..." log_info "Aggiorno version.json..."
@ -188,7 +215,7 @@ fs.writeFileSync('version.json', JSON.stringify(versionData, null, 2));
log_success "version.json aggiornato a v$NEW_VERSION" log_success "version.json aggiornato a v$NEW_VERSION"
# ============================================================================= # =============================================================================
# 6. CONFIGURA GIT REMOTE CON CREDENZIALI # 7. CONFIGURA GIT REMOTE CON CREDENZIALI
# ============================================================================= # =============================================================================
log_info "Configuro repository GitLab..." log_info "Configuro repository GitLab..."
@ -216,7 +243,7 @@ git remote add gitlab "$REPO_WITH_AUTH"
log_success "Remote GitLab configurato" log_success "Remote GitLab configurato"
# ============================================================================= # =============================================================================
# 7. COMMIT E PUSH SU GITLAB # 8. COMMIT E PUSH SU GITLAB
# ============================================================================= # =============================================================================
log_info "Preparo commit..." log_info "Preparo commit..."
@ -232,7 +259,7 @@ else
COMMIT_MSG="🚀 Release v$NEW_VERSION COMMIT_MSG="🚀 Release v$NEW_VERSION
- Tipo: $INCREMENT_TYPE - Tipo: $INCREMENT_TYPE
- Database backup: $BACKUP_FILE - Database schema: $SCHEMA_FILE (solo struttura)
- Data: $(date '+%Y-%m-%d %H:%M:%S') - Data: $(date '+%Y-%m-%d %H:%M:%S')
" "