1.3 KiB
1.3 KiB
本地备份与恢复模块
目的
在数据库加密、版本升级和更复杂功能接入前,先保证账本具备可验证、可回退的恢复能力。
备份流程
- 使用 SQLite Online Backup API 获取一致性快照,不直接复制正在使用的数据库文件。
- 对新备份执行
PRAGMA integrity_check。 - 检查迁移表、流水表和导入表等必要结构。
- 计算 SHA-256,并在同目录写入独立校验文件。
- 将数据库文件同步到磁盘后才向界面报告成功。
备份位于应用数据目录下的 backups 子目录。当前版本暂不提供云端上传或外部介质复制。
恢复保护
- 只允许恢复备份目录内、文件名合法的
.sqlite3文件。 - 恢复前重新核对 SHA-256 和数据库结构;不一致立即拒绝。
- 覆盖当前账本前,自动创建
pre-restore安全快照。 - 使用 SQLite Online Backup API 写回当前账本。
- 恢复后自动执行数据库迁移;若恢复或迁移失败,尝试用安全快照回退。
当前边界
- 本地备份与主数据库在同一块磁盘,能防误操作,不能替代异地备份。
- 备份目前仍是未加密 SQLite 文件,不应复制到不可信位置。
- 下一阶段的数据加密迁移将依赖本模块提供回退保障。