# 数据存储、迁移与回退 [返回项目首页](../README.md) ## SQLite 数据与迁移 插件数据目录包含 `console.sqlite`,运行时还可能有 WAL 和共享内存文件。目录采用进程锁,数据库使用 WAL、完整同步和外键检查。停用插件并等待关闭后再备份整个数据目录;DSH 会话历史与工作区归属另由宿主保存。 首次发现旧 `state.json` 时,新版保留原文件并创建 `state.pre-sqlite.json` 备份,然后导入来源、内容版本、工作记录、草稿、Jev 结果、会话链接和审核记录。迁移逐项核对已有字段,检查实体数量及 SQLite 完整性。数据导入和初始化标记在同一事务提交;失败后保留旧文件,下次启动可重试,成功后以 SQLite 为准。之后启动不会重新用旧 JSON 覆盖数据库。旧版本没有完整快照的历史记录会明确标为不完整,不补造原文。 升级前先停止旧实例并备份数据目录。需要回退时,停止新版,恢复升级前的整个目录与旧插件版本;旧 JSON 不包含升级后新增的工作,不应拿它覆盖仍在使用的 SQLite 数据。不要同时运行两个插件实例操作同一目录。 v1.0.0 启动时会一次性修正 GitHub Issue/PR 的旧“无需介入”结果遗留的待处理,不区分开放、关闭或合并。仅处理分析仍对应当前内容版本、没有手动处理选择、错误或活跃草稿的条目;阅读进度、分析和历史保留。修正与完成标记在同一事务提交,后续启动不会重复执行。SQLite schema 仍为 6。 内容项、评论及工作历史有界读取,搜索在服务端对当前来源的标题和完整正文执行字面子串匹配,沿用 JavaScript 的 Unicode 大小写归一化。总览只读取来源元信息与统计,编辑来源才读取其上下文配置。来源配置数量仍按个人使用规模处理;连接器每轮仍收集完整批次,短词搜索与深页查询也可能随该来源的数据量增加,不承诺任意规模恒定耗时。 ## 0.1.3 存储与后续结果 SQLite schema 6 在事务内新增 `run_sessions`,从现有非空 run 绑定复制历史关联,包括仅供历史展示的 legacy 链接;原业务行、run/receipt JSON 和宿主事件不重写。`sessions` 保存当前轮绑定,历史工作记录继续链接同一真实会话。首次提交按会话与轮次查询,内部幂等键按轮隔离,旧键只在其原轮回放。工具跨异步准备后重新校验绑定,原内容/资料/分析版本保护仍生效。 阶段失败后,后来实际保存的分析通过收据和审计记录单独展示时间及“当时已采纳”,原失败状态与终止时间保留。后补草稿仍显示实际监督状态,不代表已通过独立监督。插件不新增任务等待状态或专用回报适配器,也不自动外发。