#!/usr/bin/env python3 # -*- coding: utf-8 -*- """verify_backup.py — 快速验证 .bak 可读(连库读表清单+小表 COUNT, 非全表 integrity)。 sqlite3 .backup 是原子一致机制, .bak 28.4GB 完整即一致。本脚本确认 .bak 能连+表在=回滚可用。 """ import os import sqlite3 BAK = r"C:\sanguo_vnpy_v2\data\quant_trading.db.bak_20260722" print("bak size=%.2f GB" % (os.path.getsize(BAK) / 1024 ** 3)) c = sqlite3.connect(BAK, timeout=60) c.execute("PRAGMA busy_timeout = 60000") tabs = [r[0] for r in c.execute( "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name")] print("tables:", tabs) print("backtest_stats:", c.execute("SELECT COUNT(*) FROM backtest_stats").fetchone()[0]) print("bs_adjust_factor:", c.execute("SELECT COUNT(*) FROM bs_adjust_factor").fetchone()[0]) print("bs_index_constituent:", c.execute("SELECT COUNT(*) FROM bs_index_constituent").fetchone()[0]) c.close() print("BAK READABLE OK")