刘光辉
15 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env bash
# ─────────────────────────────────────────────────────────────────────────────
# 现场组装 sql/(git 拉码部署路线专用;离线包路线的包内 sql/ 已由构建机组装好,不用本脚本)
#
#   官方初始化 SQL:sql-seed/*.sql.gz 解压(入库的 gzip 种子,jnpf_dbnull_init 原文件
#                   101MB 超 GitHub 单文件上限,故以 gz 形态入库)
#   自建 DDL/模板 :docs/pg-migration-ddl/ 直接拷贝(git 已跟踪)
#
# 用法(仓库任意位置执行均可,幂等可重跑):
#   ./docker/postgres/migration/assemble-sql-onsite.sh
# 之后照常:./install.sh && ./create-app-roles.sh
# ─────────────────────────────────────────────────────────────────────────────
set -euo pipefail
 
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
DDL_DIR="$REPO_ROOT/docs/pg-migration-ddl"
SEED_DIR="$SCRIPT_DIR/sql-seed"
OUT="$SCRIPT_DIR/sql"
 
log() { printf '\033[1;32m[assemble]\033[0m %s\n' "$*"; }
die() { printf '\033[1;31m[assemble][err]\033[0m %s\n' "$*" >&2; exit 1; }
 
[ -d "$SEED_DIR" ] || die "缺 ${SEED_DIR}(git pull 拿最新代码)"
[ -d "$DDL_DIR" ]  || die "缺 ${DDL_DIR}"
mkdir -p "$OUT"
 
log "解压官方初始化 SQL(sql-seed → sql/)…"
for gz in "$SEED_DIR"/*.sql.gz; do
  base="$(basename "$gz" .gz)"
  gunzip -c "$gz" > "$OUT/$base"
  log "  + ${base} ($(du -h "$OUT/$base" | cut -f1))"
done
 
log "拷贝自建 DDL / pgloader 模板(docs/pg-migration-ddl → sql/)…"
for f in self_built_tables_pg.sql update_lims_huanjing_20260717.sql \
         update_lims_sxt_wendingxing_20260717.sql update_lims_sxt_wendingxing_20260720.sql \
         update_lims_sxt_flow_biz_status_20260719.sql update_lims_sxt_quyang_zhongzhi_shenqing_biz_status_20260723.sql \
         update_lims_sxt_quyang_zhongzhi_shenqing_qingyandan_link_20260723.sql \
         update_lims_sxt_plan_status_20260720.sql \
         update_lims_wendingxing_biangeng_20260720.sql \
         create_lims_sxt_quyang_jihua_renwu_20260724.sql \
         alter_lims_sxt_quyang_jihua_renwu_jianyan_xiang_kuaizhao_20260724.sql \
         create_audit_events_ext_20260724.sql \
         create_audit_events_20260724.sql \
         update_audit_events_title_entry_20260810.sql \
         update_audit_events_ingest_merge_20260818.sql \
         repair_audit_events_integrity_20260824.sql \
         create_dms_permission_v2_2_20260815.sql \
         upgrade_dms_permission_v2_2_to_v2_3_20260817.sql \
         create_dms_file_objects_20260817.sql \
         upgrade_dms_file_properties_20260820.sql \
         update_audit_events_target_timeline_index_20260823.sql \
         data_interface_pg_fixes.sql \
         nacos_config_pg.sql rowcount_check.sh \
         pgloader_jnpf_init.load.tpl pgloader_jnpf_init_bigtable.load.tpl pgloader_jnpf_flow.load.tpl; do
  [ -f "$DDL_DIR/$f" ] || die "缺 ${DDL_DIR}/${f}"
  cp -f "$DDL_DIR/$f" "$OUT/"
  log "  + ${f}"
done
chmod +x "$OUT/rowcount_check.sh"
 
# 完整性终检:install.sh / migrate-data.sh 消费的关键文件逐一在位
for f in jnpf_dbnull_init.sql Update_PostgreSQL_1127.sql jnpf_flow_init.sql jnpf_xxljob_init.sql \
         self_built_tables_pg.sql nacos_config_pg.sql; do
  [ -f "$OUT/$f" ] || die "组装后仍缺 ${f}"
done
log "sql/ 组装完成 ✓($(command ls "$OUT" | wc -l | tr -d ' ') 个文件,$(du -sh "$OUT" | cut -f1))"