#!/usr/bin/env bash # ───────────────────────────────────────────────────────────────────────────── # 构建机专用:把 repo 里的 DDL/初始化脚本组装进 delivery/sql/,让交付包自包含。 # 现场工程师【不】跑此脚本——他们收到的是已组装好的 delivery/ 目录。 # # 用法(在本机 repo 内跑一次): # ./assemble-package.sh # 可选环境变量: # DB_REPO 官方 PostgreSQL 初始化脚本所在目录 # 默认 /Users/yangsui/Code/clients/qiansheng/jnpf-database-v6.1.x/PostgreSQL # ───────────────────────────────────────────────────────────────────────────── set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" # delivery → postgres → docker → repo 根 DDL_DIR="$REPO_ROOT/docs/pg-migration-ddl" DB_REPO="${DB_REPO:-/Users/yangsui/Code/clients/qiansheng/jnpf-database-v6.1.x/PostgreSQL}" SQL_OUT="$SCRIPT_DIR/sql" echo "==> repo 根 : $REPO_ROOT" echo "==> DDL 产物目录 : $DDL_DIR" echo "==> 官方脚本目录 : $DB_REPO" echo "==> 组装输出 : $SQL_OUT" [ -d "$DDL_DIR" ] || { echo "!! 缺 $DDL_DIR"; exit 1; } [ -d "$DB_REPO" ] || { echo "!! 缺 ${DB_REPO}(传 DB_REPO=... 指定官方脚本目录)"; exit 1; } mkdir -p "$SQL_OUT" # 1) 官方三库初始化脚本(jnpf_init 用 dbnull + 1127 增量;flow / xxljob 各一份) copy_official() { local src="$1" [ -f "$src" ] || { echo "!! 缺官方脚本 $src"; exit 1; } cp -f "$src" "$SQL_OUT/" echo " + $(basename "$src") ($(du -h "$src" | cut -f1))" } echo "-- 官方初始化脚本 --" copy_official "$DB_REPO/jnpf_dbnull_init.sql" copy_official "$DB_REPO/Update/Update_PostgreSQL_1127.sql" copy_official "$DB_REPO/jnpf_flow_init.sql" copy_official "$DB_REPO/jnpf_xxljob_init.sql" # 2) 自建表 DDL + 数据接口修正 + Nacos 存储库 schema + 行数校验脚本 echo "-- DDL 产物 --" 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 data_interface_pg_fixes.sql nacos_config_pg.sql update_audit_events_target_timeline_index_20260823.sql rowcount_check.sh; do [ -f "$DDL_DIR/$f" ] || { echo "!! 缺 $DDL_DIR/$f"; exit 1; } cp -f "$DDL_DIR/$f" "$SQL_OUT/" echo " + $f ($(du -h "$DDL_DIR/$f" | cut -f1))" done # 3) pgloader 模板 echo "-- pgloader 模板 --" for f in pgloader_jnpf_init.load.tpl pgloader_jnpf_init_bigtable.load.tpl pgloader_jnpf_flow.load.tpl; do [ -f "$DDL_DIR/$f" ] || { echo "!! 缺 $DDL_DIR/$f"; exit 1; } cp -f "$DDL_DIR/$f" "$SQL_OUT/" echo " + $f" done chmod +x "$SQL_OUT/rowcount_check.sh" echo "" echo "==> 组装完成。sql/ 内容:" ls -la "$SQL_OUT" echo "" echo "下一步:本目录不再单独打 tar 交付——整栈离线交付包会把 migration/(含本 sql/)" echo "一并收入:make images-offline(见 docker/delivery/ 与 docs/docker-compose-guide.md §14)"