@@ -0,0 +1,24 @@
|
||||
"""校验备份文件可被标准 SQLite 打开并含数据(Windows 自带 Python 或 Miniconda 均可运行)。"""
|
||||
import glob
|
||||
import os
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
pattern = os.path.join(sys.argv[1], "*.db")
|
||||
files = sorted(glob.glob(pattern), key=os.path.getmtime)
|
||||
if not files:
|
||||
print("FAIL: 没有找到备份文件")
|
||||
sys.exit(1)
|
||||
|
||||
path = files[-1]
|
||||
print("备份文件:", os.path.basename(path), os.path.getsize(path), "字节")
|
||||
con = sqlite3.connect(path)
|
||||
tables = [r[0] for r in con.execute(
|
||||
"select name from sqlite_master where type='table' order by name")]
|
||||
print("表:", ", ".join(tables))
|
||||
for t in ("users", "packages", "customers", "subscriptions", "sub_adjustments", "checkins", "op_logs"):
|
||||
if t in tables:
|
||||
n = con.execute("select count(*) from %s" % t).fetchone()[0]
|
||||
print(" %-16s %d 行" % (t, n))
|
||||
con.close()
|
||||
print("OK")
|
||||
Reference in New Issue
Block a user