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

208 lines
4.4 KiB
Markdown

# 🚀 IMPORT MDB - Guida Rapida Esecuzione
## ⚡ **SETUP VELOCE**
### **1. Preparazione (1 volta)**
```bash
# 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**
```bash
# 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**
```bash
# Verifica tabelle
mdb-tables -1 ~/stabili.mdb
# Deve contenere: Stabili
# Se non presente, verificare file MDB
```
### **STEP 2: Validazione Dati**
```bash
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**
```bash
# 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**
```sql
-- 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"**
```bash
sudo apt-get update && sudo apt-get install mdbtools
```
### **❌ "Tabella Stabili non trovata"**
```bash
# Verifica contenuto MDB
mdb-tables -1 ~/stabili.mdb
mdb-schema ~/stabili.mdb
# Se vuoto, file MDB corrotto o non valido
```
### **❌ "API Token non valido"**
```bash
# 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:**
```bash
# Esporta CSV per analisi
mdb-export ~/stabili.mdb Stabili > stabili_check.csv
head -10 stabili_check.csv
```
---
## 📈 **MONITORAGGIO PROGRESS**
### **Durante Import (altro terminale):**
```bash
# 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à:**
```bash
# 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**
```bash
# 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')"
```