60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
import json
|
|
import pymysql
|
|
import os
|
|
import re
|
|
|
|
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
CONFIG_PATH = os.path.join(SCRIPT_DIR, "agent_config.json")
|
|
|
|
with open(CONFIG_PATH) as f:
|
|
config = json.load(f)
|
|
MYSQL_HOST = config.get("MySQLHost", "localhost")
|
|
MYSQL_USER = config.get("MySQLUser", "user")
|
|
MYSQL_PASSWORD = config.get("MySQLPassword", "password")
|
|
MYSQL_DB = config.get("MySQLDatabase", "netgescon")
|
|
|
|
conn = pymysql.connect(
|
|
host=MYSQL_HOST,
|
|
user=MYSQL_USER,
|
|
password=MYSQL_PASSWORD,
|
|
db=MYSQL_DB,
|
|
charset='utf8mb4'
|
|
)
|
|
cur = conn.cursor()
|
|
|
|
cur.execute("SHOW TABLES;")
|
|
tutte = [r[0] for r in cur.fetchall()]
|
|
|
|
totale = 0
|
|
trovate = []
|
|
|
|
for tab in tutte:
|
|
try:
|
|
cur.execute(f"SHOW COLUMNS FROM `{tab}`;")
|
|
colonne = [r[0].lower() for r in cur.fetchall()]
|
|
if "codice" in colonne and "nome" in colonne:
|
|
trovate.append(tab)
|
|
except Exception:
|
|
continue
|
|
|
|
if not trovate:
|
|
print("Nessuna tabella con colonne 'codice' e 'nome' trovata.")
|
|
else:
|
|
for tab in trovate:
|
|
cur.execute(f"SELECT COUNT(*) FROM `{tab}`;")
|
|
n = cur.fetchone()[0]
|
|
print(f"\nTabella: {tab} ({n} condomini)")
|
|
if n > 0:
|
|
cur.execute(f"SELECT * FROM `{tab}` LIMIT 5;")
|
|
rows = cur.fetchall()
|
|
cur.execute(f"SHOW COLUMNS FROM `{tab}`;")
|
|
colonne = [r[0] for r in cur.fetchall()]
|
|
for r in rows:
|
|
dati = {col: val for col, val in zip(colonne, r)}
|
|
print(" ", dati)
|
|
totale += n
|
|
|
|
print(f"\nTotale condomini in tutte le tabelle trovate: {totale}")
|
|
|
|
cur.close()
|
|
conn.close() |