feat(acm2-76): 联调栈数据库自动初始化——基础数据/字典/信箱报文/历史索引

- postgres-init:02 建 basicdata schema 与 25 张基础数据表(表列对齐
  admin-api secondary 实体注解),03 灌双流 T2 种子(fims_* 待 Q25 不造数);
  独立 schema 避免 public 非空导致 Flyway 首次 migrate 失败
- admin-mysql-init:原样引入 admin-api 仓库 adminapi_* 建表与字典/UI 种子,
  v0.0.2 补 FLIGHT_TASK/FLIGHT_TYPE 条目;compose 强制 utf8mb4 并设 LANG,
  防 initdb 客户端落 latin1 造成中文双重编码
- es-init 一次性服务:按 admin-api mapping 建 flight_hts2(别名 flight_hts),
  副本置 0 保持单节点 green
- dev/mysql-init:CMINMSGS 5 条样例报文(SCHD/FLOP×2/REGN/ARPT),
  REGN/ARPT 标注现状预期(SKIPPED / DEAD(EXHAUSTED))
- seed-flight.sql:Flyway 建表后手动执行,8 条航班 6 场景 + 资源明细
- admin-api.yml secondary 加 currentSchema=basicdata,public
- README:初始化/种子/重建卷/验收边界说明

已用 podman compose 重建数据卷全链实测;ACM2-76 有评审与验收全记录。
This commit is contained in:
windyboy
2026-09-19 11:09:58 +08:00
parent abf598a250
commit 25cc967bd2
12 changed files with 2245 additions and 10 deletions
+16 -1
View File
@@ -90,12 +90,16 @@ services:
admin-mysql:
image: mysql:8.4
restart: unless-stopped
command: ["--mysql-native-password=ON"]
# mysql-native-password:兼容 admin-api 旧 MySQL JDBC 的认证方式;
# 字符集双保险:服务端默认 utf8mb4LANG 让 initdb 的 mysql 客户端
# 不落到 latin1(否则 UTF-8 种子双重编码成 mojibake)。
command: ["--mysql-native-password=ON", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
environment:
MYSQL_ROOT_PASSWORD: admin_root_dev_pass
MYSQL_DATABASE: adminapi
MYSQL_USER: admin_dev
MYSQL_PASSWORD: admin_dev_pass
LANG: C.UTF-8
ports:
- "0.0.0.0:13307:3306"
volumes:
@@ -131,6 +135,17 @@ services:
retries: 30
start_period: 30s
# 一次性建历史索引 flight_hts(别名→flight_hts2),映射取自 admin-api 仓库。
es-init:
image: curlimages/curl:8.10.1
restart: "no"
depends_on:
elasticsearch:
condition: service_healthy
volumes:
- ./deploy/integration/es-init:/init:ro,Z
entrypoint: ["/bin/sh", "/init/init-flight-hts.sh"]
volumes:
admin_mysql_data:
es_data: