背景与目标
TrailSnap 是自托管应用,数据安全是用户最核心的诉求。当前设置页有配置 JSON 的导入/导出,但缺乏数据库和照片元数据的备份/恢复机制。一旦数据库损坏,所有 AI 分析结果、人脸聚类、标签分类将全部丢失。
功能范围
- 一键导出 PostgreSQL 数据库为 SQL 文件(
pg_dump)
- 一键从 SQL 文件恢复数据库
- 定时自动备份(可配置周期和保留份数)
- 备份文件列表管理(查看、下载、删除)
- 备份状态和进度通知
技术方案
- 后端:新增
GET /api/system/backup、POST /api/system/backup、POST /api/system/backup/restore 端点
- 通过
subprocess 调用 pg_dump / psql,输出到 data/backups/ 目录
- 定时任务复用现有
TaskManager._scheduler_loop 机制
- 前端:设置页新增"备份与恢复"标签页
优先级
高 — 自托管应用的数据安全是基本需求,缺少备份是用户上车的最大顾虑
背景与目标
TrailSnap 是自托管应用,数据安全是用户最核心的诉求。当前设置页有配置 JSON 的导入/导出,但缺乏数据库和照片元数据的备份/恢复机制。一旦数据库损坏,所有 AI 分析结果、人脸聚类、标签分类将全部丢失。
功能范围
pg_dump)技术方案
GET /api/system/backup、POST /api/system/backup、POST /api/system/backup/restore端点subprocess调用pg_dump/psql,输出到data/backups/目录TaskManager._scheduler_loop机制优先级
高 — 自托管应用的数据安全是基本需求,缺少备份是用户上车的最大顾虑