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