- migrate-test-db.sh: export DEV_PG_CONTAINER (inner script reads it, not CONTAINER) - launch-single.sh: SYSTEM_DB_* must override root-.env CONTEXT_DB_* (set -a re-source clobbers both external exports and :- fallbacks; two misdirected launches audited, dev DB unchanged - report §5.8-3) - task record done; full test report (nightly five chains PASS @5e409c1e, migration S0-verified, deployment acceptance, rollback paths, follow-ups)
36 lines
1.7 KiB
Bash
Executable File
36 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# migrate-test-db.sh — dump 容器 system-db (shuimu-system-pg-test :5434) → 本机 localpg :5434
|
||
#
|
||
# 复用 migrate-dev-db.sh 的通用逻辑(其全部差异点已参数化);本脚本只钉 test 默认值:
|
||
# CONTAINER=shuimu-system-pg-test DATA_DIR=data/test PORT=5434 DB=agent_system_test
|
||
# 前置:
|
||
# - 容器 shuimu-system-pg-test 健康(作为 dump 源)
|
||
# - brew postgresql@18 + pgvector 已安装(LOCALPG_BIN 可覆盖)
|
||
# - configs/.env.test 提供 SYSTEM_DB_*(或用环境变量覆盖)
|
||
# 不删除 docker volume;回滚:docker compose -f docker-compose.test.yml -p agent-test up -d system-db
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
|
||
# 读取 test 环境 SSOT(SYSTEM_DB_* 等;含密钥,勿回显)
|
||
# shellcheck disable=SC1091
|
||
if [[ -f "$ROOT/configs/.env.test" ]]; then
|
||
set -a
|
||
. "$ROOT/configs/.env.test"
|
||
set +a
|
||
fi
|
||
|
||
export DEV_PG_CONTAINER="${DEV_PG_CONTAINER:-shuimu-system-pg-test}"
|
||
export DATA_DIR="${MIGRATE_DATA_DIR:-$ROOT/data/test}" # 绝对路径,避免 PGDATA 相对解析漂移
|
||
export PORT="${CONTEXT_DB_PORT:-${SYSTEM_DB_PUBLISH_PORT:-5434}}"
|
||
export CONTEXT_DB_PORT="$PORT"
|
||
export DB_USER="${CONTEXT_DB_USER:-${SYSTEM_DB_USER:-app}}"
|
||
export DB_PASS="${CONTEXT_DB_PASSWORD:-${SYSTEM_DB_PASSWORD:?SYSTEM_DB_PASSWORD required (configs/.env.test)}}"
|
||
export DB_NAME="${CONTEXT_DB_NAME:-${SYSTEM_DB_NAME:-agent_system_test}}"
|
||
export DUMP="${DUMP_PATH:-$ROOT/.tmp/test-pg-migrate.dump}"
|
||
# migrate-dev-db.sh 的 dump 步骤读取 SYSTEM_DB_USER / SYSTEM_DB_NAME
|
||
export SYSTEM_DB_USER="${SYSTEM_DB_USER:-app}"
|
||
export SYSTEM_DB_NAME="${SYSTEM_DB_NAME:-agent_system_test}"
|
||
|
||
bash "$ROOT/scripts/migrate-dev-db.sh"
|