con web ui

This commit is contained in:
2026-01-11 21:56:50 +01:00
parent 6306006f82
commit 3a53564bb5
7 changed files with 2040 additions and 141 deletions

View File

@@ -4,8 +4,10 @@ Un tool robusto per la migrazione di database MySQL a PostgreSQL con trasformazi
## Caratteristiche
- **Web GUI**: Interfaccia grafica basata su Gradio per monitoraggio e controllo visuale
- **Migrazione Completa**: Trasferimento di tutti i dati da MySQL a PostgreSQL
- **Migrazione Incrementale**: Sincronizzazione periodica basata su consolidation keys
- **Migrazione Parallela**: Supporto per worker multipli per velocizzare le migrazioni
- **Consolidamento Dati**: Raggruppa multiple righe MySQL in singoli record PostgreSQL
- **Trasformazione JSONB**: Consolidamento automatico di colonne multiple in campi JSONB
- **Partizionamento**: Supporto per partizioni per anno (2014-2031)
@@ -16,6 +18,7 @@ Un tool robusto per la migrazione di database MySQL a PostgreSQL con trasformazi
- **Logging**: Logging strutturato con Rich per output colorato
- **Dry-Run Mode**: Modalità test senza modificare i dati
- **State Management**: Tracking affidabile con tabella `migration_state` in PostgreSQL
- **Error Logging**: Tracciamento automatico di chiavi di consolidamento non valide
## Setup
@@ -94,7 +97,47 @@ Crea lo schema PostgreSQL con:
- Indici ottimizzati per JSONB
- Tabella di tracking `migration_state`
#### Migrazione Completa
#### Web GUI (Interfaccia Grafica) 🎨
Lancia l'interfaccia web per monitorare e controllare le migrazioni in modo visuale:
```bash
# Avvia la GUI sulla porta predefinita (7860)
uv run main.py web
# Avvia su una porta specifica
uv run main.py web --port 8080
# Crea un link pubblico condivisibile (utile per accesso remoto)
uv run main.py web --share
```
Poi apri il browser su `http://localhost:7860` per accedere alla dashboard.
**Funzionalità della GUI:**
- **📊 Overview Tab**: Visualizza lo stato di tutte le partizioni con grafici e tabelle in tempo reale
- **▶️ Start Migration Tab**: Avvia nuove migrazioni full con controlli per:
- Selezione tabella (RAWDATACOR, ELABDATADISP, o entrambe)
- Modalità parallela (numero di worker)
- Resume da checkpoint
- Dry-run mode
- Migrazione di partizione singola
- **🔄 Incremental Sync Tab**: Sincronizza solo i nuovi dati aggiunti dopo l'ultima migrazione full
- Selezione tabella
- Dry-run mode
- Spiegazione di come funziona l'incremental
- **📝 Logs Tab**: Visualizza i log in tempo reale delle migrazioni in corso
- **⚠️ Error Logs Tab**: Esplora i file di log degli errori di validazione
**Vantaggi rispetto alla CLI:**
- Monitoraggio visuale dello stato delle migrazioni
- Grafici interattivi per statistiche e progress
- Controllo centralizzato di più migrazioni
- Nessun bisogno di terminali multipli
- Accessibile anche da remoto con `--share`
#### Migrazione Completa (CLI)
```bash
# Migrare tutte le tabelle
python main.py migrate full