diff --git a/app.py b/app.py index 75813fa..098ef8e 100644 --- a/app.py +++ b/app.py @@ -309,6 +309,12 @@ def vision_config(): def make_backup(manual=False): """生成备份 zip(数据库 + 上传目录)""" with _lock: + # 先落盘备份状态(让备份文件内包含正确的时间/计数),再 checkpoint 合并 WAL + db = sqlite3.connect(str(DB_PATH)) + set_setting(db, "last_backup_time", _ts()) + set_setting(db, "change_counter", "0") + db.commit() + db.close() c = sqlite3.connect(str(DB_PATH)) try: c.execute("PRAGMA wal_checkpoint(TRUNCATE)") @@ -323,11 +329,6 @@ def make_backup(manual=False): for p in sorted(UPLOAD_DIR.rglob("*")): if p.is_file(): z.write(p, f"data/uploads/{p.relative_to(UPLOAD_DIR)}") - db = sqlite3.connect(str(DB_PATH)) - set_setting(db, "last_backup_time", _ts()) - set_setting(db, "change_counter", "0") - db.commit() - db.close() _prune_backups() return name