- FS1: 增加 Flyway 迁移 V1.1.0__flight_schd.sql,创建 FLIGHT_SCHD 与 SCHD_GEN - FS2: 实现 FlightSchdRepository 接口及 JdbcFlightSchdRepository 与 StubFlightSchd,增强 JdbcOps 事务管理 - FS3: 扩展 MessageProcessor 事务 2 与按 FLID 点查视图,合并变更、事件与终态入单事务提交 - FS4: SnapshotFlow SQL 化(批处理 upsert、域内差删、SQL CAS 推进与熔断保护),JobExecutor 接入 PG 清场删除 - FS5: 彻底退役 Redis 权威与写路径,移除 FlightRedisClient、Lua 脚本、健康指示器与配置残留 - FS6: 补齐 U09/U29 不变量门禁(崩溃幂等、CAS 防并发、ADFT 存活保障、非 UTC JVM/会话时区无漂移)与 FlywayMigrationTest - FS7: 交付影子对拍比较内核 FlightStoreDiffTool 与单元测试 - FS8: 全面回改 decision-flight-state、architecture、design、user-stories 权威文档与规范
33 lines
2.4 KiB
SQL
33 lines
2.4 KiB
SQL
-- =====================================================================
|
||
-- 自有 PostgreSQL 库 · 阶段 A 运营航班表与计划代迁移 · ACM2-28 定案(选项 C)
|
||
-- ---------------------------------------------------------------------
|
||
-- 存储边界(ACM2-28 定案,取代 ACM2-12「FLIGHT_STATE 缓做不落表、Redis 永续权威」口径):
|
||
-- · FLIGHT_SCHD:SCHD 日计划快照 + FLOP/ADFT 增量合并后的当前运营航班权威态,落自有 PG。
|
||
-- · SCHD_GEN:各日代版本与当前代航班全量集合(差删依据),由 Redis 回归自有 PG。
|
||
-- · Redis:彻底退出动态权威与全部写路径;阶段 A 读写事务全在自有 PG 原子完成。
|
||
-- · 增量 Upsert 语义:
|
||
-- - 快照全量写入(DNLD):声明/更新 FDAY 归属,更新 FLTR_JSON;
|
||
-- - 增量写入(FLOP/ADFT):新插置 NULL,已有行通过 ON CONFLICT 保留原 FDAY;
|
||
-- - 按代差删域化:DELETE FROM FLIGHT_SCHD WHERE FDAY = :day AND FLID = ANY(:diffSet)
|
||
-- 仅删除仍属旧代的行,ADFT(FDAY=NULL)与已迁移至新代的同 FLID 行天然存活。
|
||
-- · 时间列规范:统一使用 TIMESTAMP(6) WITH TIME ZONE (TIMESTAMPTZ)。
|
||
-- =====================================================================
|
||
|
||
-- ① 运营航班表(当前运营航班动态权威,FLID 与 legacy flightInfo 同键)
|
||
CREATE TABLE FLIGHT_SCHD (
|
||
FLID VARCHAR(32) NOT NULL PRIMARY KEY, -- AODB 唯一航班标识
|
||
FDAY DATE NULL, -- 所属日计划代;NULL = 非代所有(ADFT/增量增建)
|
||
FLTR_JSON JSONB NOT NULL, -- 航班全量记录(与 legacy flightInfo value 同构)
|
||
CREATED_AT TIMESTAMP(6) WITH TIME ZONE NOT NULL,
|
||
UPDATED_AT TIMESTAMP(6) WITH TIME ZONE NOT NULL
|
||
);
|
||
CREATE INDEX idx_flight_schd_fday ON FLIGHT_SCHD (FDAY); -- 日代扫描与影子对拍分片
|
||
|
||
-- ② 日计划代与差删元数据表(代版本推进与版本 CAS)
|
||
CREATE TABLE SCHD_GEN (
|
||
FDAY DATE NOT NULL PRIMARY KEY, -- 计划日(yyyy-MM-dd)
|
||
VERSION BIGINT NOT NULL, -- 代版本号(单调递增)
|
||
FLIDS_JSON JSONB NOT NULL, -- 当前代有效航班 FLID 集合
|
||
UPDATED_AT TIMESTAMP(6) WITH TIME ZONE NOT NULL
|
||
);
|