-- ===================================================================== -- ACMA-8 v4 数据模型(六表)· Flyway 基线迁移 -- 与 issue「综合架构设计」数据模型节逐字一致;影子实例在独立 schema 执行同一脚本。 -- ===================================================================== -- ① 处理状态伴生表(不动 CMINMSGS 旧列; -- 回滚兼容:SUCCEEDED 时回填 CMINMSGS.DATE_PROCESSED/STATUS,旧系统可接管续跑) CREATE TABLE PROC_STATE ( CMINMSGS_ID BIGINT PRIMARY KEY, STATE VARCHAR(16) NOT NULL, -- PENDING/FAILED/SUCCEEDED/SKIPPED/DEAD IDENTITY_KEY VARCHAR(200) NULL, -- SNDR|TYPE|STYP|SEQN,decode 后首次绑定(I3) ATTEMPTS INT NOT NULL DEFAULT 0, NEXT_ATTEMPT_AT TIMESTAMP NULL, ERROR_CLASS VARCHAR(20) NULL, -- MALFORMED/CODEC_ERROR/EXHAUSTED/INFRA LAST_ERROR VARCHAR(1000) NULL, UPDATED_AT TIMESTAMP NOT NULL, UNIQUE KEY UK_PROC_IDENTITY (IDENTITY_KEY), INDEX IDX_PROC_HEAD (STATE, CMINMSGS_ID) -- 主泵队头查询(I1) ); -- ② 统一投递事件(outbox) CREATE TABLE MSG_EVENT ( EVENT_ID BIGINT AUTO_INCREMENT PRIMARY KEY, TARGET VARCHAR(30) NOT NULL, -- KAFKA:msg / KAFKA:schd(A起);ES:flight_hts / REDIS:flightInfo(B起) PARTITION_KEY VARCHAR(64) NULL, -- schd 事件恒为 FLID PAYLOAD_JSON MEDIUMTEXT NOT NULL, STATE VARCHAR(16) NOT NULL, -- PENDING/SENT/DEAD ATTEMPTS INT NOT NULL DEFAULT 0, NEXT_ATTEMPT_AT TIMESTAMP NULL, ERROR_CLASS VARCHAR(20) NULL, LAST_ERROR VARCHAR(1000) NULL, CREATED_AT TIMESTAMP NOT NULL, INDEX IDX_EVT_HEAD (TARGET, STATE, EVENT_ID) -- 每 target 队头查询(I1 双层同策略) ); -- ③ 参考数据 + SCHD generation 元数据(21 类;SCHD_GEN 行 RKEY=日期) CREATE TABLE REF_DATA ( RTYPE VARCHAR(20) NOT NULL, -- AIRL/ARPT/... | SCHD_GEN RKEY VARCHAR(64) NOT NULL, PAYLOAD_JSON MEDIUMTEXT NOT NULL, -- SCHD_GEN: {"flids":[...],"version":N} VERSION BIGINT NOT NULL DEFAULT 0, -- putGenIfVersion CAS 依据(流程 4) SOURCE VARCHAR(20) NOT NULL, -- ADMINAPI / AODB / PIPELINE REFRESHED_AT TIMESTAMP NOT NULL, PRIMARY KEY (RTYPE, RKEY) ); -- ④ 请求状态机(15 类,流程 6) CREATE TABLE REQ_TRACK ( REQ_ID BIGINT AUTO_INCREMENT PRIMARY KEY, REQ_TYPE VARCHAR(20) NOT NULL, PARAMS_JSON VARCHAR(500) NOT NULL, STATE VARCHAR(16) NOT NULL, -- REGISTERED/SENT/WAITING/DONE/EXPIRED COUTMSGS_ID INT NULL, SENT_AT TIMESTAMP NULL, COMPLETED_AT TIMESTAMP NULL, INDEX IDX_REQ_OPEN (REQ_TYPE, STATE) ); -- ⑤ 泵作业队列(定时任务统一入口:cron 触发入队,主泵 FIFO 执行) CREATE TABLE PUMP_JOB ( JOB_ID BIGINT AUTO_INCREMENT PRIMARY KEY, KIND VARCHAR(20) NOT NULL, -- ARCHIVE / HISTORY_SWEEP / PROJECTION_REBUILD STATE VARCHAR(16) NOT NULL, -- QUEUED/RUNNING/DONE/FAILED CREATED_AT TIMESTAMP NOT NULL, UPDATED_AT TIMESTAMP NOT NULL, LAST_ERROR VARCHAR(1000) NULL ); -- ⑥ 航班状态权威(阶段 B 启用;此前 Redis 为权威,I5) CREATE TABLE FLIGHT_STATE ( FLID VARCHAR(32) PRIMARY KEY, FDAY DATE NOT NULL, VERSION BIGINT NOT NULL, MAID VARCHAR(32) NULL, PAYLOAD_JSON MEDIUMTEXT NOT NULL, -- 投影兼容格式的 FLTR JSON UPDATED_AT TIMESTAMP NOT NULL, INDEX IDX_FS_DAY (FDAY, VERSION) );