chore(db): 压缩 Flyway 迁移链为单基线
原 V1–V10 的净结构全部合并进 V1__flight_state_baseline.sql,迁移链收敛为一条。 表集合、逐列类型/非空/默认值、表级约束、索引与种子行经重放比对与旧链条一致; 仅丢弃 5 条只对既有库有意义的存量数据语句(RECEIVED_AT/ENQUEUED_AT 回填、 schd 与开放请求去重、SENT_AT 回写)。 已按旧链迁移过的库版本链与校验和对不上,必须重建 schema 或删除数据卷后重跑, 禁止手工 repair 或改写 flyway_schema_history。 - 删除 V2–V10 共 9 个迁移文件 - 注释统一范式并改用稳定 ID(INV-x/C-x/G-x),修正 KAFKA_MSG/KAFKA_SCHD 与实际值不符 - 同步 docs/reference.md、docs/user-stories.md、oracle11g/README.md、README、application.yml、compose.yaml - FlywayMigrationTest 改为断言单基线,并补 MSG_EVENT.SENT_AT 覆盖
This commit is contained in:
@@ -7,19 +7,21 @@ Flyway 配置**;PG 路径使用 `classpath:db/migration`,两者互不混用
|
||||
|
||||
1. 现场 11.2 补丁级别、数据库字符集、DBA 权限清单拿到,且可提供可测试的目标库。
|
||||
2. JDK 25 × ojdbc 驱动(具体版本)× Flyway Oracle 支持 × 连接池组合在目标库实测通过
|
||||
——不能以"PG 通过"代替 Oracle 验收(Oracle 11g 适配为开放项,docs/flight-state.md §6)。
|
||||
——不能以"PG 通过"代替 Oracle 验收(Oracle 11g 适配为开放项,见 `docs/flight-state.md`)。
|
||||
3. 11g 的 upsert(MERGE INTO)与绑定顺序适配完成并通过与 PG 同粒度的集成测试后,
|
||||
才允许把仓储 SQL 切到 11g 方言。先前编译级交付的 `SqlDialect` 方言接缝已随
|
||||
V1 基线列名更替(fday/last_message_id → operation_day/last_msg_id)退役删除;
|
||||
接入时必须按 V1 基线现有列名重建,禁止直接复用旧接缝。
|
||||
基线列名更替(fday/last_message_id → operation_day/last_msg_id)退役删除;
|
||||
接入时必须按基线现有列名重建,禁止直接复用旧接缝。
|
||||
|
||||
## 计划内容
|
||||
|
||||
- V1 起:`V1__flight_state_baseline.sql` 的 11g 等价 DDL——
|
||||
PIPELINE_LOCK/PROC_STATE/MSG_EVENT/REQ_TRACK/BACKFILL_TODO/FLIGHT_SCHD + 9 张明细表/SCHD_SNAP_LOG;
|
||||
- 单基线:`V1__flight_state_baseline.sql` 的 11g 等价 DDL——
|
||||
PIPELINE_LOCK/INBOX_CURSOR/PROC_STATE/MSG_EVENT/REQ_TRACK/FLIGHT_SCHD + 9 张明细表/SCHD_SNAP_LOG;
|
||||
`NUMBER`/序列替代 `BIGSERIAL`、`TIMESTAMP WITH TIME ZONE`、`VARCHAR2` BYTE/CHAR 语义钉死。
|
||||
- `INSERT ... ON CONFLICT` 改 11g MERGE(OPERATION_DAY 不可变条件,flight-state.md §2.1)。
|
||||
- `INSERT ... ON CONFLICT` 改 11g MERGE(OPERATION_DAY 不可变条件,`INV-12`)。
|
||||
- 空串按 NULL 的语义回归:显式清空的 presence 信息不得被 11g 空串语义吞掉
|
||||
(flight-state.md §3.1 显式清空口径)。
|
||||
(字段清空语义见 `Q13`;定案前按「未携带不清空」实现,`INV-14`)。
|
||||
- 11g 无部分索引:`uq_req_open` / `uq_schd_event` / `idx_proc_backfill_due` 三个带 `WHERE`
|
||||
的索引必须换成等价的函数索引或冗余列方案,不能照搬 PG 定义。
|
||||
|
||||
版本号与 PG location 各自独立推进,禁止复用版本号语义。
|
||||
|
||||
Reference in New Issue
Block a user