netgescon-day0/docs/00-IMPORT/03-SCRIPTS/extract-all-mdb-tables.sh

68 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Script per estrarre tutte le tabelle principali da MDB a CSV
# Posizione: /home/michele/netgescon/docs/000-IMPORT/03-SCRIPTS/extract-all-mdb-tables.sh
MDB_FILE="/home/michele/netgescon/docs/02-architettura-laravel/Gescon/0021/generale_stabile.mdb"
OUTPUT_DIR="/home/michele/netgescon/docs/000-IMPORT/02-CSV-ESTRATTI"
# Crea directory di output
mkdir -p "$OUTPUT_DIR"
echo "=== ESTRAZIONE TABELLE MDB ==="
echo "Database: $MDB_FILE"
echo "Directory output: $OUTPUT_DIR"
echo
# Lista delle tabelle principali da estrarre
TABELLE_PRINCIPALI=(
"anni"
"Fatture"
"Bonifici"
"F24"
"acqua_gen"
"acqua_dett"
"Acqua_Fatture"
"emes_gen"
"emes_det"
"Elenco_destinatari_email"
"Elenco_destinatari_PEC"
"Elenco_destinatari_SMS"
"770_ST"
"770_ST2"
"Corrisp_inviata"
"Registro_Nomina_Revoca_Amm"
)
# Estrai ogni tabella
for tabella in "${TABELLE_PRINCIPALI[@]}"; do
echo "Estraendo tabella: $tabella"
# Esporta in CSV
mdb-export "$MDB_FILE" "$tabella" > "$OUTPUT_DIR/${tabella}.csv"
# Conta record
RECORDS=$(tail -n +2 "$OUTPUT_DIR/${tabella}.csv" | wc -l)
echo "$RECORDS record estratti"
# Mostra primi 3 campi per verifica
echo " → Primi campi: $(head -1 "$OUTPUT_DIR/${tabella}.csv" | cut -d',' -f1-3)"
echo
done
echo "=== ESTRAZIONE COMPLETATA ==="
echo "File estratti in: $OUTPUT_DIR"
echo
# Crea indice dei file estratti
echo "=== INDICE FILE ESTRATTI ===" > "$OUTPUT_DIR/INDICE-ESTRAZIONE.txt"
for file in "$OUTPUT_DIR"/*.csv; do
if [ -f "$file" ]; then
nome_file=$(basename "$file")
righe=$(wc -l < "$file")
echo "$nome_file: $((righe-1)) record" >> "$OUTPUT_DIR/INDICE-ESTRAZIONE.txt"
fi
done
echo "Indice creato: $OUTPUT_DIR/INDICE-ESTRAZIONE.txt"