#!/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))"