HEL-270: 修复闭期补录未提交即回滚丢失(补回归测试)

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-08-30 22:29:52 +08:00
co-authored by multica-agent
parent e857a0e46d
commit 267ebd37f5
3 changed files with 66 additions and 34 deletions
+5 -4
View File
@@ -14,16 +14,17 @@ MONTH_DIR="$DEST/monthly"
mkdir -p "$DAY_DIR" "$MONTH_DIR"
# 1) SQLite 在线热备(容器内 python sqlite3 backup API,主库可继续写入)
docker exec "$CONTAINER" python - <<'PY'
# 备份文件写进数据卷 /app/data(宿主机 deploy/../data 可直接读取),避免
# read_only 容器 + tmpfs 下 docker cp 取不到文件的问题。
docker exec -i "$CONTAINER" python - <<'PY'
import os, sqlite3
src = sqlite3.connect(os.environ.get("APP_DB_PATH", "/app/data/app.db"))
dst = sqlite3.connect("/tmp/app.db.backup")
dst = sqlite3.connect("/app/data/.backup-tmp.db")
src.backup(dst)
dst.close(); src.close()
print("hot-backup ok")
PY
docker cp "$CONTAINER:/tmp/app.db.backup" "$DAY_DIR/app.db.$STAMP"
docker exec "$CONTAINER" rm -f /tmp/app.db.backup
mv "$ROOT/../data/.backup-tmp.db" "$DAY_DIR/app.db.$STAMP"
# 2) 原始文件目录打包(银行原始证据,只读复制,绝不改动)
tar -C "$ROOT/.." -czf "$DAY_DIR/files.$STAMP.tar.gz" data/files