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