Files
msgexchange-v2/src/main/resources/db/migration/oracle11g/README.md
T

28 lines
1.8 KiB
Markdown
Raw Normal View History

# Oracle 11g 专用迁移位置(ACM2-29 P3-B,门控未激活)
本目录是现场 11g 部署形态的 Flyway migration location 占位。当前 **不接入任何环境的
Flyway 配置**PG 路径使用 `classpath:db/migration`,两者互不混用。
## 激活前置条件(全部满足才允许接入)
1. 现场 11.2 补丁级别、数据库字符集、DBA 权限清单拿到,且可提供可测试的目标库。
2. JDK 25 × ojdbc 驱动(具体版本)× Flyway Oracle 支持 × 连接池组合在目标库实测通过
——不能以"PG 通过"代替 Oracle 验收(Oracle 11g 适配为开放项,见 `docs/implementation.md`)。
3. 11g 的 upsertMERGE INTO)与绑定顺序适配完成并通过与 PG 同粒度的集成测试后,
才允许把仓储 SQL 切到 11g 方言。先前编译级交付的 `SqlDialect` 方言接缝已随
基线列名更替(fday/last_message_id → operation_day/last_msg_id)退役删除;
接入时必须按基线现有列名重建,禁止直接复用旧接缝。
## 计划内容
- 单基线:`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 MERGEOPERATION_DAY 不可变条件,`INV-12`)。
- 空串按 NULL 的语义回归:显式清空的 presence 信息不得被 11g 空串语义吞掉
(字段清空语义见 `Q13`;定案前按「未携带不清空」实现,`INV-14`)。
- 11g 无部分索引:`uq_req_open` / `uq_schd_event` / `idx_proc_backfill_due` 三个带 `WHERE`
的索引必须换成等价的函数索引或冗余列方案,不能照搬 PG 定义。
版本号与 PG location 各自独立推进,禁止复用版本号语义。