v1.1.1: 修复备份zip内备份状态滞后(先落盘状态再打包), 备份文件包含正确时间戳
This commit is contained in:
@@ -309,6 +309,12 @@ def vision_config():
|
|||||||
def make_backup(manual=False):
|
def make_backup(manual=False):
|
||||||
"""生成备份 zip(数据库 + 上传目录)"""
|
"""生成备份 zip(数据库 + 上传目录)"""
|
||||||
with _lock:
|
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))
|
c = sqlite3.connect(str(DB_PATH))
|
||||||
try:
|
try:
|
||||||
c.execute("PRAGMA wal_checkpoint(TRUNCATE)")
|
c.execute("PRAGMA wal_checkpoint(TRUNCATE)")
|
||||||
@@ -323,11 +329,6 @@ def make_backup(manual=False):
|
|||||||
for p in sorted(UPLOAD_DIR.rglob("*")):
|
for p in sorted(UPLOAD_DIR.rglob("*")):
|
||||||
if p.is_file():
|
if p.is_file():
|
||||||
z.write(p, f"data/uploads/{p.relative_to(UPLOAD_DIR)}")
|
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()
|
_prune_backups()
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user