diff --git a/docs/统一订单履约与财务模型-权威版.md b/docs/统一订单履约与财务模型-权威版.md index 8976d4fb..cc49e9e2 100644 --- a/docs/统一订单履约与财务模型-权威版.md +++ b/docs/统一订单履约与财务模型-权威版.md @@ -769,6 +769,22 @@ npm run audit:finance -- --strict - `product_channel_capabilities`、`manual_sku_registry`、`internal_sku_channels` 和历史 `legacy_*` 字段继续保留为审计留存,不在生产观察期前删除。 +生产升级演练(本地临时库): + +- 输入:`backups/postgres/order_site-20261106-192520.dump`,备份迁移 `145`; + 恢复后执行 `146 → 168`。 +- 数据规模:订单 `456777`、订单项 `456762`、商品 `1572`、正式履约 `456762`。 +- 升级和迁移全部成功;恢复时唯一失败的是备份自身依赖顺序导致的函数索引, + 在函数恢复后按原定义补建,随后迁移 `163` 正常删除该索引。 +- 财务重建前存在旧事实/总账差异;执行一次 `finance:rebuild-derived --execute` 后, + 销售范围 `21653` 项、收入 `170241674` 分、退款 `77370` 分、成本 `104881187` 分, + 事实与总账完全对平,严格审计 `critical: []`。 +- 第二次重建返回 `adjusted: 0`,证明总账调整幂等。 +- 原始订单 `456777`、订单项 `456762`、订单收入 `3646267730` 分、退款 `7` 笔 / + `77370` 分、资金流水 `2` 条在两次重建前后完全守恒。 +- 仍需运营处理:`8` 个只有人工兜底、没有主路由的配置,`162` 个待归一订单项, + 以及 `476` 个已结构化标记的待履约异常。上述数据不做自动猜测。 + 只有前五个阶段持续稳定后才允许: - 删除 `product_channel_capabilities`。 @@ -863,7 +879,7 @@ docs/archive/ 本地阶段 0–6 已按硬切方案完成,生产仍停留在迁移 `146`。后续顺序固定为: -1. 生成生产升级清单并做全量备份,不在本地继续扩展新模型。 +1. 生产执行前重新生成全量备份,并核对备份迁移号确为 `146`。 2. 在生产依次执行迁移 `147 → 168`,每阶段运行对应严格审计; 无法确定的数据进入未路由或待分类,不做猜测。 3. 执行一次 `finance:rebuild-derived` 的 dry-run,核对 A 级数据守恒后,