Files
Omika/tools/diag_omika_db.py
2026-10-23 18:46:50 +02:00

42 lines
1.6 KiB
Python

import sqlite3, json, collections, sys
db = r'C:\Users\Susana\AppData\Local\Omika\omika.db'
con = sqlite3.connect(db)
cur = con.cursor()
tables = [r[0] for r in cur.execute("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name")]
print('TABLES:', tables)
for t in ['RendezVous', 'Client', 'Collaborateur', 'Dossier', 'SuiviTemps', 'Intervention', 'Site']:
try:
n = cur.execute('SELECT COUNT(*) FROM "%s"' % t).fetchone()[0]
print('%s: %d rows' % (t, n))
except Exception as e:
print('%s: ERR %s' % (t, e))
print()
rows = cur.execute('SELECT Id, PayloadJson, UpdatedAtUtc FROM RendezVous LIMIT 2').fetchall()
print('SAMPLE RendezVous rows:')
for r in rows:
print(' Id=', r[0], 'Updated=', r[2])
print(' Payload=', r[1][:500])
print()
dates = []
parse_errors = 0
for (Id, PayloadJson, UpdatedAtUtc) in cur.execute('SELECT Id, PayloadJson, UpdatedAtUtc FROM RendezVous'):
try:
d = json.loads(PayloadJson)
dates.append((d.get('Debut'), d.get('Fin'), d.get('Titre')))
except Exception as e:
parse_errors += 1
dates.append(('PARSE_ERR:' + str(e), None, None))
print('TOTAL RendezVous payloads:', len(dates), 'parse_errors:', parse_errors)
if dates:
counts = collections.Counter((x[0] or 'None')[:10] for x in dates)
print('Debut distribution (date prefix):', dict(sorted(counts.items())))
valid = [x[0] for x in dates if isinstance(x[0], str)]
if valid:
print('Min Debut:', min(valid))
print('Max Debut:', max(valid))
print('Sample entries:')
for x in dates[:15]:
print(' ', x)
con.close()