# πŸš€ MySQL to PostgreSQL Migration Tool **Benvenuto!** Questo Γ¨ il tuo punto di partenza per utilizzare il migration tool. ## πŸ“‹ Indice Rapido ### Per gli Impazienti (5 minuti) β†’ Vai a [QUICKSTART.md](QUICKSTART.md) ### Per i Dettagli Completi β†’ Vai a [README.md](README.md) ### Per un Esempio Pratico β†’ Vai a [EXAMPLE_WORKFLOW.md](EXAMPLE_WORKFLOW.md) ### Per Capire Come Γ¨ Fatto β†’ Vai a [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) --- ## 🎯 Cosa Puoi Fare ### 1️⃣ Migrare il Database ```bash python main.py setup --create-schema # Setup schema python main.py migrate full # Migrare tutti i dati ``` ### 2️⃣ Sincronizzare i Cambiamenti ```bash python main.py migrate incremental # Migrare solo i nuovi record ``` ### 3️⃣ Testare le Performance ```bash python main.py benchmark # Confronto MySQL vs PostgreSQL ``` ### 4️⃣ Verificare la Configurazione ```bash python main.py info # Mostra settings ``` --- ## πŸ“š Documentazione Disponibile | File | Contenuto | Leggi Se... | |------|----------|-----------| | [README.md](README.md) | Guida completa (600+ linee) | Vuoi tutto | | [QUICKSTART.md](QUICKSTART.md) | Setup in 5 minuti | Hai fretta | | [EXAMPLE_WORKFLOW.md](EXAMPLE_WORKFLOW.md) | Scenario reale step-by-step | Vuoi un esempio | | [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) | Dettagli tecnici | Sei developer | --- ## ⚑ Setup Rapido ### 1. Installazione ```bash ./install.sh source venv/bin/activate ``` ### 2. Configurazione ```bash cp .env.example .env # Edita .env con i tuoi dettagli ``` ### 3. Crea PostgreSQL (opzionale) ```bash bash scripts/incus_setup.sh pg-server password123 ``` ### 4. Esegui Migrazione ```bash python main.py setup --create-schema python main.py migrate full ``` --- ## πŸ” Trovare Quello che Serve ### Ho Domande su... **Come installare?** β†’ [QUICKSTART.md - Setup](QUICKSTART.md#setup-in-5-minuti) **Come migrare i dati?** β†’ [EXAMPLE_WORKFLOW.md - Migrazione](EXAMPLE_WORKFLOW.md#8-migrazione-completa-60-min-per-dati-grandi) **Come fare query su JSONB?** β†’ [README.md - Query su JSONB](README.md#query-su-jsonb) oppure [QUICKSTART.md - Esempi Query](QUICKSTART.md#esempi-di-query-su-postgresql) **Qual Γ¨ la struttura JSONB?** β†’ [README.md - Trasformazione Dati](README.md#trasformazione-dati) **Come fare il benchmark?** β†’ [README.md - Benchmark](README.md#benchmark) **Come si fa la migrazione incrementale?** β†’ [QUICKSTART.md - Migrazioni Periodiche](QUICKSTART.md#migrazioni-periodiche) **Cosa fare se c'Γ¨ un errore?** β†’ [README.md - Troubleshooting](README.md#troubleshooting) **Come funziona internamente?** β†’ [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) --- ## πŸ“¦ Cosa Contiene il Tool ### FunzionalitΓ  βœ… Migrazione completa (full) βœ… Migrazione incrementale (delta) βœ… Trasformazione JSONB automatica βœ… Benchmark MySQL vs PostgreSQL βœ… Partizionamento nativo PostgreSQL βœ… GIN indexes per JSONB βœ… Progress tracking βœ… Logging con Rich ### Script Helper βœ… `install.sh` - Setup rapido βœ… `scripts/incus_setup.sh` - PostgreSQL container βœ… `scripts/validate_migration.sql` - Validazione dati βœ… `scripts/setup_cron.sh` - Scheduling automatico ### Comandi CLI βœ… `setup` - Crea schema βœ… `migrate full` - Migrazione completa βœ… `migrate incremental` - Migrazione delta βœ… `benchmark` - Performance test βœ… `info` - Mostra config --- ## πŸŽ“ Primi Passi ### Passo 1: Leggi il QUICKSTART Apri [QUICKSTART.md](QUICKSTART.md) per un setup veloce. ### Passo 2: Configura .env Copia `.env.example` a `.env` e inserisci le tue credenziali. ### Passo 3: Esegui Installazione ```bash ./install.sh ``` ### Passo 4: Verifica Configurazione ```bash python main.py info ``` ### Passo 5: Setup Schema PostgreSQL ```bash python main.py setup --create-schema ``` ### Passo 6: Migra i Dati ```bash python main.py migrate full ``` ### Passo 7: Test Performance ```bash python main.py benchmark ``` --- ## πŸ’‘ Tips - **Migrazione lenta?** Aumenta `BATCH_SIZE` in `.env` - **Vuoi solo una tabella?** Usa `--table RAWDATACOR` con i comandi - **Primo test?** Usa `--dry-run` per vedere cosa verrebbe fatto - **Automatizzare?** Usa `scripts/setup_cron.sh` per scheduled sync --- ## πŸ“ž Aiuto Se hai domande: 1. Leggi il [README.md](README.md) completo 2. Consulta [EXAMPLE_WORKFLOW.md](EXAMPLE_WORKFLOW.md) per scenario reale 3. Guarda [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) per dettagli tecnici 4. Controlla la sezione Troubleshooting nel README --- ## βœ… Checklist Prima di Partire - [ ] Ho Python 3.10+ - [ ] Ho MySQL e PostgreSQL disponibili - [ ] Ho copiato .env.example a .env - [ ] Ho configurato credenziali in .env - [ ] Ho eseguito `./install.sh` - [ ] Ho testato `python main.py info` con successo Se tutti i checkmark sono spuntati, sei pronto! --- **Buona migrazione! πŸŽ‰** Domande? Consulta la documentazione qui sopra.