zizi 0e3964da2c W00 固定工作树、资料与数据边界:新版设计文档树、改造计划与验证清单基线;工作树资料与数据边界。
按 R2 串行阶段整理提交;包内文件为该阶段交付(含后续小增量),状态以工作包清单为准。
2026-09-10 19:25:40 +08:00

49 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据切换与回退执行单
本文供 W29—W31 使用。新实现通过隔离演练后才接管正式写入;当前准备计划不执行连接、迁移、停机或发布。
## 环境与基线
明确旧应用、旧 PG、旧 SQLite、私人文件、受控 raw/归档、新应用、独立新目标库、开发库和验收库的位置与用途。开发库只能保存可重放数据。验收使用实际作者材料前核对授权与保存方式;不能让测试默认连接正式库。
基础设施位置优先采用项目明确配置;无覆盖时按全局分工核对 mini-infra 的持久服务与 mini-desktop 的构建/发布职责。执行者需实查当时服务和连接引用,不能只根据主机名修改进程。凭据值留在受控存储,切换包仅保存引用。
切换包固定:旧来源快照与最终增量范围、内容哈希、旧新身份映射、完整迁移版本及校验和、资源发布身份、目标配置、未决差异、在途任务/调用、原文租约/归档状态、恢复入口及观察判据。
## 演练与切换步骤
| 步骤 | 动作 | 通过条件 | 失败处理 |
|------|------|----------|----------|
| C01 完整空库演练 | 从空验收库装最终基线、用途角色与结构种子 | 迁移按依赖成功,实际约束和权限用例通过 | 保留失败记录,重建验收库;旧生产不变 |
| C02 全量导入 | 读取授权快照,按来源命名空间、K01—K08 和生命周期转换 | 每条源记录为明确目标、历史保留或可解释隔离;字节与关系对账 | 不静默丢弃,修正规则后重演练 |
| C03 恢复验证 | 从备份恢复完整内容、结构、关系和授权状态,再跑旅程 | 原文和决定可读,动态字段可解释,关键旅程通过 | 保留原快照与备份,不能进入切换 |
| C04 固定候选发布包 | 固定应用/前端/Skill/Schema/配置版本,并核对切换动作授权 | 成品与演练一致,观察及回退条件具体可审 | 产物改变则重验受影响部分;不沿用旧结果 |
| C05 停旧写与旧领取 | 停旧作者写入口和后台领取,盘点在途任务与模型调用 | 旧请求不能继续写,未知调用有单独对账结果 | 保持旧正式权威,排清在途状态;不盲目重发 |
| C06 最终增量 | 导入停写后的增量,重算相关内容和引用差异 | 源与目标截止点一致,正文/事实/决定/归档齐全 | 新写仍关闭,修复或按首笔写入前方案回退 |
| C07 权限与路由交接 | 验证旧写权关闭后启用新唯一写入口 | 不存在旧新双写窗口,首笔新生产写入可定位 | 立即停新写并进入适用窗口的恢复方案 |
| C08 观察与实际试用 | 检查真实作品操作、任务、派生、原文和恢复状态 | 约定观察动作均完成,数据不变量和关键旅程无阻断失败 | 停止受影响动作,保全新增数据并修复;不以等待时长当作通过 |
| C09 旧实现退出 | 核对全部替代包、用例和数据条件,逐项清理旧入口/配置/代码 | 活跃引用已改接,恢复资产与历史用途清楚 | 恢复误删资料,重新核对;不能恢复第二条正式写路径 |
W29 必须事先约定观察动作与结束条件,例如真实正文保存、采纳、一次章后失败重试、刷新恢复及索引读取。观测指标包括错误分类、版本冲突、重复写入、派生积压、未知调用、原文清理/归档异常和迁移差异。没有设定观察动作时不启动 C07,不以一个任意固定时长或“页面能打开”替代观察。
## 两个回退窗口
| 窗口 | 允许的处理 | 不能承诺的事情 |
|------|------------|----------------|
| 新系统尚无正式写入 | 停新入口,核对旧库仍是停写时完整基线,再恢复旧写权限和路由 | 不能在旧新都可写时直接切路由 |
| 已有新正文、事实、决定或任务写入 | 先停新写并保全增量,优先修复新版或恢复兼容的新版程序;只有已验证反向转换时才能切回旧系统 | 不能仅回退代码、丢弃新库或覆盖新稿;不能假设旧结构能解释新元数据和决策 |
若没有可验证的反向转换,出现阻断问题后的安全状态是停止相关写入、保留新数据并恢复新版,不是无条件恢复旧程序。恢复备份前核对新增版本与作者未提交缓冲,不能把它们当可清缓存。
## 原文与历史特别处理
临时原文、持久证据和受控归档严格遵守[生命周期合同](../接口契约/原文证据生命周期.md)。migrating 原文先对账,不得因停机、过期或旧代码退出而被普通清理删除;已归档字节与回执须在新目标可核对。来源授权不能因迁移提升。
旧 PG 的正式内容不被 SQLite review 覆盖。SQLite 独有的运行、审阅、反馈、经验和向量身份要分别承接;原本只有指针的记录不能被伪装成完整内容。旧数据、备份、私人草稿及研究材料的保留与代码删除分别决定。
旧源码说明和测试取证在退出时转为固定基线引用:优先使用已获授权提交的不可变版本;尚无提交时使用 W00 的内容快照及哈希索引。不能只引用缺少未提交改动的 HEAD,也不为维持旧链接长期保留可执行的重复写入口。
## 交付回执
记录实际截止点、发布版本、权限交接、首笔新写入、增量与差异、关键用例结果、观察动作、原文状态、回退窗口和保留资产位置。缺失项保持未完成,不生成伪成功回执。