netgescon-day0/docs/00-IMPORT/QUICK-START-MDB.md

4.4 KiB

🚀 IMPORT MDB - Guida Rapida Esecuzione

SETUP VELOCE

1. Preparazione (1 volta)

# Installa dipendenze sistema
sudo apt-get install mdbtools nodejs npm

# Installa dipendenze Node.js
cd docs/000-IMPORT/03-SCRIPTS/
npm install axios

# Verifica installazione
mdb-tools --version && node --version

2. Configurazione

# Copia file MDB in posizione accessibile
cp /path/to/stabili.mdb ~/stabili.mdb

# Ottieni token API NetGescon
curl -X POST http://localhost:8000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@netgescon.it","password":"password"}'

🔍 ESECUZIONE IMPORT

STEP 1: Test Connessione MDB

# Verifica tabelle
mdb-tables -1 ~/stabili.mdb

# Deve contenere: Stabili
# Se non presente, verificare file MDB

STEP 2: Validazione Dati

node mdb-importer.js ~/stabili.mdb --validate-only --verbose

Output atteso:

🗃️  NETGESCON MDB IMPORTER
✅ mdb-tools disponibile
✅ Tabella Stabili trovata
📊 Record nella tabella: XX
✅ Batch 1 validato: XX record
📊 RISULTATI FINALI:
📋 Record processati: XX
✅ Importati: XX
❌ Errori: 0

STEP 3: Import Effettivo

# Sostituire YOUR_TOKEN con il token ottenuto
node mdb-importer.js ~/stabili.mdb \
  --api-token YOUR_TOKEN \
  --batch-size 25 \
  --verbose

Output atteso:

🗃️  NETGESCON MDB IMPORTER
🔗 Test connessione API...
✅ API connessa - Utente: Admin
📦 Avvio processamento batch...
✅ Batch 1: X importati, X duplicati, 0 errori
🎉 Import completato!

📊 VERIFICA RISULTATI

Database Check

-- Accedi a MySQL
mysql -u root -p netgescon

-- Verifica import
SELECT COUNT(*) as stabili_totali FROM stabili;
SELECT COUNT(*) as stabili_importati FROM stabili WHERE cod_stabile_old IS NOT NULL;

-- Preview dati importati
SELECT 
    id, 
    denominazione, 
    cod_stabile_old, 
    directory_name,
    totale_unita_immobiliari,
    JSON_EXTRACT(dati_bancari, '$.iban_principale') as iban
FROM stabili 
WHERE cod_stabile_old IS NOT NULL 
LIMIT 5;

Interfaccia Web

  1. Accedi a http://localhost:8000
  2. Login con credenziali amministratore
  3. Vai su "Gestione Stabili"
  4. Verifica presenza stabili importati
  5. Controlla dettagli primo stabile

🔧 TROUBLESHOOTING RAPIDO

"mdb-tools command not found"

sudo apt-get update && sudo apt-get install mdbtools

"Tabella Stabili non trovata"

# Verifica contenuto MDB
mdb-tables -1 ~/stabili.mdb
mdb-schema ~/stabili.mdb

# Se vuoto, file MDB corrotto o non valido

"API Token non valido"

# Genera nuovo token
php artisan tinker
>>> $user = User::where('email', 'admin@netgescon.it')->first();
>>> $token = $user->createToken('mdb-import')->plainTextToken;
>>> echo $token;

"Errori di validazione"

Campi spesso problematici:

  • CAP non formato 5 cifre
  • Provincia non 2 caratteri
  • Denominazione vuota
  • Indirizzo vuoto

Controllo dati:

# Esporta CSV per analisi
mdb-export ~/stabili.mdb Stabili > stabili_check.csv
head -10 stabili_check.csv

📈 MONITORAGGIO PROGRESS

Durante Import (altro terminale):

# Monitora database in tempo reale
watch -n 2 'mysql -u root -p -e "SELECT COUNT(*) as imported FROM netgescon.stabili WHERE cod_stabile_old IS NOT NULL;"'

Log Attività:

# Log Laravel (se errori API)
tail -f /var/www/netgescon/storage/logs/laravel.log

# Log MySQL (se abilitato)
tail -f /var/log/mysql/mysql.log

🎯 NEXT STEPS

Una volta completato import stabili:

  1. Verifica completezza dati

  2. Test funzionalità sistema

  3. Pianifica import successive tabelle:

    • Anagrafica condomini
    • Unità immobiliari
    • Movimenti contabili
    • Rate condominiali
  4. Configurazione collegamenti:

    • Amministratori ↔ Stabili
    • Stabili ↔ Unità
    • Condomini ↔ Unità

💡 COMANDI UTILI

# Backup pre-import
mysqldump netgescon stabili > backup_stabili_$(date +%Y%m%d_%H%M%S).sql

# Import con log completo
node mdb-importer.js ~/stabili.mdb --api-token TOKEN --verbose 2>&1 | tee import_log.txt

# Conta record MDB
echo "Record MDB: $(mdb-export ~/stabili.mdb Stabili | wc -l | awk '{print $1-1}')"

# Quick status check
echo "NetGescon: $(mysql -u root -p -N -e 'SELECT COUNT(*) FROM netgescon.stabili WHERE cod_stabile_old IS NOT NULL')"