feat(persistence)!: V1.4.0 退场 legacy 槽位存储,persistNextStates 成为唯一写路径 (ACM2-29 P4)
- V1.4.0 迁移:DROP FLIGHT_SCHD 全部 77 个槽位/里程碑/紧凑航路列(V1.3.0 起 零写入、P2-2 起零读取)+ 三个与 PK 前缀冗余的 (flid) 单列索引;回退窗口关闭 (对拍留档:P2-1 FS7 v2 双读差异记录) - 接口收敛:FlightSchdRepository 删除 upsertSnapshotBatch/upsertIncremental, 删除废弃 FlightStateRepository 及 Jdbc/Stub 适配器;仓储与装配器删除全部 legacy flatten/slot/milestone/route 视图代码,ALL_COLUMNS 收敛为无损承载列 - FS7 对拍工具移除 diffDualRead(legacy 槽位基准退场);diff() 对 legacy FLTR JSON 比对保留;FlightStoreDualReadTest 随工具移除 - 测试种子统一走 v2 写路径(support/SeedHelpers),GuardedFlightSchd 简化 - docs/decision-flight-state.md:头部复核入口更新 + 新增 §10 v2 落地终态索引, §1–§9 保留为历史记录 验证:MSGX_PG_PORT=5433 真实 PG 全量 100 用例 0 失败 0 跳过;无环境变量 Testcontainers 全新容器 V1.0.0→V1.4.0 迁移链 18/18 全绿
This commit is contained in:
@@ -7,8 +7,10 @@
|
||||
> **2026-09-08 复核入口**:详细证据与重构提案见 [运营航班状态设计评审](review-flight-state-2026-09-08.md)。
|
||||
> 本轮确认的部署边界:现场提供 Oracle 时使用 Oracle 11g,否则自行部署 PostgreSQL。
|
||||
> 评审保留单库原子提交方向,但发现 §9 固定资源槽位与本仓库三登机门样例冲突,
|
||||
> 并指出集合往返、迁移与快照 CAS 的风险。下文保留历史定案记录;新提案尚未实装,
|
||||
> 不应将历史“全部交付/保真”措辞视为双数据库生产验收证据。
|
||||
> 并指出集合往返、迁移与快照 CAS 的风险。**§9 全宽表·零子表方案已按 v2 设计撤销**,
|
||||
> 现行权威口径见 [§10 v2 落地](#10-acm2-29-v2-无损明细表方案落地2026-09-08)、
|
||||
> [flight-state-design-v2.md](flight-state-design-v2.md) 与
|
||||
> [flight-state-semantics.md](flight-state-semantics.md);§1–§9 保留为历史记录。
|
||||
|
||||
## 1. 问题
|
||||
|
||||
@@ -158,3 +160,23 @@ B-tree 逐列追加,11g/PG 零方言成本。
|
||||
|
||||
Oracle 11g 的 `MERGE INTO` 方言、Flyway 11.2 支持版本和 ojdbc 认证组合仍必须在目标数据库环境
|
||||
中完成平台决策与集成验收;不能用 PostgreSQL 测试结果替代该外部环境证据。
|
||||
|
||||
## 10. ACM2-29 v2 无损明细表方案落地(2026-09-08)
|
||||
|
||||
按 [评审报告](review-flight-state-2026-09-08.md)(F1–F9)与
|
||||
[flight-state-design-v2.md](flight-state-design-v2.md) 评审定案,撤销 §9「全宽表·零子表」
|
||||
作为权威存储形态,落地无损模型;本节为当前有效规则索引:
|
||||
|
||||
- **存储**:`FLIGHT_SCHD` 保留标量/异常前缀/无界文本列(V1.4.0 已 DROP 槽位、里程碑与紧凑
|
||||
航路列及冗余索引);10 类重复集合由 9 张明细表 + `flight_route_point(ROUTE_KIND)` 承载,
|
||||
PK `(FLID, ORDINAL)`,`SOURCE_SEQ` 不去重不设唯一(v2 §3.2)。
|
||||
- **写路径**:`persistNextStates` 是唯一写路径;引擎产生显式命令
|
||||
(Unchanged/Set/Clear/Replace/Apply),序号 0 条目仅在整集合清除时翻译为 Clear,
|
||||
混排 fail fast;异常对象 `"null"`/`{}`/空串 = 显式清除置 NULL。
|
||||
- **事务**:PIPELINE_LOCK 行锁内复核快照身份(`schd_gen.last_message_id`)与当前态,
|
||||
CAS 失败一律回滚 `FAILED(INFRA)`;提交后共享信箱回填失败落 `backfill_todo` 补偿重试,
|
||||
成功终态不降级(v2 §5)。
|
||||
- **读模型**:明细表为权威读;`flight_schd_display` 视图提供首/次资源与总数投影。
|
||||
- **双库**:`SqlDialect` 接缝(PG 实装;`Oracle11gDialect` 为编译级交付),
|
||||
11g 激活门控见 `db/migration/oracle11g/README.md`——现场 11.2 实测通过前不切换。
|
||||
- **字段语义唯一索引**:[flight-state-semantics.md](flight-state-semantics.md)。
|
||||
|
||||
Reference in New Issue
Block a user