Files
piano-plan/temp_compare.py

59 lines
1.9 KiB
Python

import sqlite3, sys
def get_templates(db_path):
conn = sqlite3.connect(db_path)
c = conn.cursor()
c.execute("SELECT id, name, type, sort_order FROM templates ORDER BY type, sort_order")
rows = c.fetchall()
conn.close()
return rows
dev_path = "D:/F/NewI/opencode/daily-workspace/projects/青年钢琴集体课/练习方案系统/data/piano_plans.db"
prod_path = "D:/F/NewI/opencode/daily-workspace/projects/青年钢琴集体课/练习方案系统/temp_prod_piano.db"
import shutil
shutil.copy("\\\\?\\UNC\\47.115.32.206\\ipc$\\tmp\\prod_piano.db", prod_path)
dev_rows = get_templates(dev_path)
prod_rows = get_templates(prod_path)
print("=== DEV TEMPLATES ===")
for r in dev_rows:
print(f"ID={r[0]} | {r[1]} | type={r[2]} | sort={r[3]}")
print()
print("=== PROD TEMPLATES ===")
for r in prod_rows:
print(f"ID={r[0]} | {r[1]} | type={r[2]} | sort={r[3]}")
print()
dev_ids = {r[0] for r in dev_rows}
prod_ids = {r[0] for r in prod_rows}
only_dev = dev_ids - prod_ids
only_prod = prod_ids - dev_ids
same_ids = dev_ids & prod_ids
if only_dev:
print(f"=== ONLY IN DEV: IDs {only_dev} ===")
for r in dev_rows:
if r[0] in only_dev:
print(f" ID={r[0]} | {r[1]} | type={r[2]} | sort={r[3]}")
if only_prod:
print(f"=== ONLY IN PROD: IDs {only_prod} ===")
for r in prod_rows:
if r[0] in only_prod:
print(f" ID={r[0]} | {r[1]} | type={r[2]} | sort={r[3]}")
if same_ids:
print(f"=== IN BOTH (comparing) ===")
dev_map = {r[0]: r for r in dev_rows}
prod_map = {r[0]: r for r in prod_rows}
for i in sorted(same_ids):
d = dev_map[i]
p = prod_map[i]
if d != p:
print(f" ID={i}:")
print(f" DEV: name={d[1]} type={d[2]} sort={d[3]}")
print(f" PROD: name={p[1]} type={p[2]} sort={p[3]}")
else:
print(f" ID={i}: IDENTICAL")