Files

1.3 KiB

本地备份与恢复模块

目的

在数据库加密、版本升级和更复杂功能接入前,先保证账本具备可验证、可回退的恢复能力。

备份流程

  1. 使用 SQLite Online Backup API 获取一致性快照,不直接复制正在使用的数据库文件。
  2. 对新备份执行 PRAGMA integrity_check
  3. 检查迁移表、流水表和导入表等必要结构。
  4. 计算 SHA-256,并在同目录写入独立校验文件。
  5. 将数据库文件同步到磁盘后才向界面报告成功。

备份位于应用数据目录下的 backups 子目录。当前版本暂不提供云端上传或外部介质复制。

恢复保护

  • 只允许恢复备份目录内、文件名合法的 .sqlite3 文件。
  • 恢复前重新核对 SHA-256 和数据库结构;不一致立即拒绝。
  • 覆盖当前账本前,自动创建 pre-restore 安全快照。
  • 使用 SQLite Online Backup API 写回当前账本。
  • 恢复后自动执行数据库迁移;若恢复或迁移失败,尝试用安全快照回退。

当前边界

  • 本地备份与主数据库在同一块磁盘,能防误操作,不能替代异地备份。
  • 备份目前仍是未加密 SQLite 文件,不应复制到不可信位置。
  • 下一阶段的数据加密迁移将依赖本模块提供回退保障。