v1.1.1: 修复备份zip内备份状态滞后(先落盘状态再打包), 备份文件包含正确时间戳

This commit is contained in:
2026-08-27 16:02:01 +08:00
parent 82c0d51671
commit cc6735dfe9
+6 -5
View File
@@ -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