备份
备份是通过 SQLite Backup API 创建的在线 SQLite 快照,可以在 WAL 模式下 安全运行,无需外部工具即可恢复。
备份模型
备份是 SQLite 数据库的一致快照,在服务器运行时创建:
POST /api/v2/backups通过 SQLite Backup API 创建快照, 这在 WAL 模式下是安全的,并且不会阻塞读操作。GET /api/v2/backups列出现有备份;缓存内容和日志不包含在内。
每条备份记录显示其日期、大小、schema 版本、来源和状态。界面显示相同 的信息,创建备份绝不会中断读取本地数据。
备份覆盖的内容
备份覆盖整个结构化数据库:角色、人设、聊天和消息、设定集、预设、提供商 配置、插件状态和设置。它不包括:
cache/thumbnails/—— 可重新生成,按设计排除;- 日志 —— 按设计排除;
- 导入暂存目录 —— 按设计是临时的。
files/ 中的原始文件是内容寻址的,绝不会被缓存维护触碰,
因此它们不是快照本身的一部分。
恢复
POST /api/v2/backups/:id/restore 遵循一个安全的顺序:
- 创建并轮转当前状态的安全备份。
- 用
PRAGMA quick_check校验选定的快照。 - 通过 SQLite Online Backup API 把它复制到活动数据库中。
连接和仓库保持打开:响应携带 restartRequired: false,
随后的读写无需重启即可继续工作。恢复永远不需要外部的 SQLite 工具。
失败的快照或复制返回 RESTORE_FAILED,安全备份被保留,
因此当前状态绝不会在失败的恢复中丢失。
在界面中,恢复需要显式确认,在完整性检查通过之前绝不会被报告为成功, 如果出现问题还会提供自动返回安全副本的选项。删除备份时, 如果它是最后一个可用副本,会向你发出警告。
备份作为安全网
相同的快照机制保护危险操作:
- 迁移运行器在重建或重塑表的迁移之前,为有数据的数据库创建迁移前备份。
- 导入执行在写入任何选定的数据之前创建安全备份, 因此失败或被中断的导入总是可以回滚。
- 恢复总是先快照当前状态,如上所述。