刘光辉
10 小时以前 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
#!/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)"