42 lines
1.6 KiB
Python
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()
|