docs: consolidate flight state design
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package com.gzzn.omms.msgexchange.domain.flight
|
||||
|
||||
/**
|
||||
* 显式字段命令(flight-state-design-v2 §4)。
|
||||
* 显式字段命令(docs/flight-state.md §4)。
|
||||
*/
|
||||
sealed interface ScalarCommand {
|
||||
data object Unchanged : ScalarCommand
|
||||
|
||||
@@ -14,7 +14,7 @@ package com.gzzn.omms.msgexchange.infra.persistence.dialect
|
||||
* Oracle 11.2 补丁级别 × JDK 25 × ojdbc 驱动 × Flyway(db/migration/oracle11g location)
|
||||
* × 连接池组合必须在现场 11g 实测通过后,才允许把生产方言切到 [Oracle11gDialect];
|
||||
* MERGE 绑定顺序适配、CLOB(SRVT/VIPF/MAFL_TEXT)与空串=NULL 语义回归一并纳入激活清单。
|
||||
* 验收证据要求见 docs/flight-state-design-v2.md §6/§8。
|
||||
* 验收证据要求见 docs/flight-state.md §8。
|
||||
*/
|
||||
interface SqlDialect {
|
||||
/** 航班主行快照 upsert:按 SCALAR_WRITE_COLUMNS 生成整体替换 SQL。 */
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.time.Instant
|
||||
import javax.sql.DataSource
|
||||
|
||||
/**
|
||||
* v2 明细表读写(flight-state-design-v2 §3.2)。
|
||||
* v2 明细表读写(docs/flight-state.md §3.2)。
|
||||
* 主表保存标量,明细表保存重复集合;不存在旧槽位读写回退。
|
||||
*/
|
||||
internal object FlightDetailTables {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- flight-state-design-v2 (ACM2-29): lossless detail tables + tracking columns
|
||||
-- docs/flight-state.md (ACM2-29): lossless detail tables + tracking columns
|
||||
|
||||
ALTER TABLE flight_schd
|
||||
ADD COLUMN IF NOT EXISTS last_message_id VARCHAR(64),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- flight-state-design-v2 §8 (ACM2-29 P2-2): compatibility read view.
|
||||
-- docs/flight-state.md §8 (ACM2-29 P2-2): compatibility read view.
|
||||
-- 提供「首个/第二个资源 + 总数」的运营查询投影;完整明细仍在各明细表可查。
|
||||
-- PG 专属语法(LATERAL);Oracle 11g 方言随 P3-B 单独提供 location。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- flight-state-design-v2 §5 (ACM2-29 P2-3): 提交后共享信箱回填的持久补偿待办。
|
||||
-- docs/flight-state.md §5 (ACM2-29 P2-3): 提交后共享信箱回填的持久补偿待办。
|
||||
-- 业务事务已提交(PROC_STATE=SUCCEEDED)后回填失败 → 落本表重试;
|
||||
-- 回填失败不得把已成功的业务事务重新标记为失败,也不得重放业务变更。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- flight-state-design-v2 §7 步骤 5 (ACM2-29 P4): 旧损失性结构退场。
|
||||
-- docs/flight-state.md §7 步骤 5 (ACM2-29 P4): 旧损失性结构退场。
|
||||
-- v2 无损明细表已是唯一权威存储(V1.3.0 起),槽位/里程碑/紧凑航路列自 V1.3.0 起零写入、
|
||||
-- P2-2 起零读取;对拍(FS7 v2 双读 + 全结构回环矩阵)与升级链验证通过后关闭回退窗口,
|
||||
-- 本迁移物理删除这些列与其冗余索引。SRVT/VIPF/MAFL_TEXT 与异常前缀列为无损承载,保留。
|
||||
|
||||
@@ -7,7 +7,7 @@ Flyway 配置**;PG 路径使用 `classpath:db/migration`,两者互不混用
|
||||
|
||||
1. 现场 11.2 补丁级别、数据库字符集、DBA 权限清单拿到,且可提供可测试的目标库。
|
||||
2. JDK 25 × ojdbc 驱动(具体版本)× Flyway Oracle 支持 × 连接池组合在目标库实测通过
|
||||
——不能以"PG 通过"代替 Oracle 验收(docs/flight-state-design-v2.md §6)。
|
||||
——不能以"PG 通过"代替 Oracle 验收(docs/flight-state.md)。
|
||||
3. `SqlDialect` 切到 `Oracle11gDialect` 前,MERGE 绑定顺序适配完成并通过
|
||||
`FlightSchdJdbcPgTest` 同等粒度的 11g 集成测试。
|
||||
|
||||
@@ -19,6 +19,6 @@ Flyway 配置**;PG 路径使用 `classpath:db/migration`,两者互不混用
|
||||
- `SRVT_TEXT/VIPF_TEXT/MAFL_TEXT` 映射 `CLOB`(PG 为 TEXT)。
|
||||
- `flight_schd_display` 11g 版视图(无 LATERAL,用标量子查询)。
|
||||
- 空串按 NULL 的语义回归:命令层 presence 信息不得被 11g 空串语义吞掉
|
||||
(docs/flight-state-semantics.md §5)。
|
||||
(docs/flight-state.md §5)。
|
||||
|
||||
版本号与 PG location 各自独立推进,禁止复用版本号语义。
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ class FlywayMigrationTest {
|
||||
/**
|
||||
* P2-4:带数据的 V1.1.0 → 最新版本升级链验证(隔离 schema,不污染 public)。
|
||||
* V1.2.0 删除 *_TXT 集合列是「已知损失边界」(评审 F6):标量列与结构完整存活,
|
||||
* 集合文本不可恢复——升级前必须完整导出或重放(docs/flight-state-design-v2.md §7)。
|
||||
* 集合文本不可恢复——升级前必须完整导出或重放(docs/flight-state.md)。
|
||||
*/
|
||||
@Test
|
||||
fun `upgrade chain from seeded V1_1_0 data keeps scalars and adds v2 tracking`() {
|
||||
|
||||
Reference in New Issue
Block a user