This commit is contained in:
2026-09-29 18:47:37 +08:00
parent 2c60a29e0f
commit c2927ab9a6
291 changed files with 4008 additions and 6298 deletions
+12 -44
View File
@@ -1,47 +1,15 @@
#!/usr/bin/env sh
set -eu
# 仅用于测试基础设施容器。所有 SQL 均使用 CREATE ... IF NOT EXISTS 或幂等扩展语句,
# 不删除已有业务数据;仓库样例数据使用固定 ID 重复写入。
MYSQL_CONTAINER="${TEST_MYSQL_CONTAINER:-firstleg-test-mysql}"
if ! docker inspect --type container "$MYSQL_CONTAINER" >/dev/null 2>&1; then
echo "测试 MySQL 容器不存在:$MYSQL_CONTAINER" >&2
echo "请先执行 docker compose -f docker-compose-infra.yml up -d" >&2
exit 1
fi
if [ "$(docker inspect -f '{{.State.Running}}' "$MYSQL_CONTAINER")" != "true" ]; then
echo "测试 MySQL 容器未运行:$MYSQL_CONTAINER" >&2
exit 1
fi
for sql_file in \
auth/src/main/resources/db/auth.sql \
iam/src/main/resources/db/iam.sql \
auth/src/main/resources/db/phase1-admin-accounts.sql \
iam/src/main/resources/db/phase1-admin-rbac.sql \
iam/src/main/resources/db/phase1-onboarding.sql \
iam/src/main/resources/db/phase1-customer-profile.sql \
iam/src/main/resources/db/phase1-member-permissions.sql \
iam/src/main/resources/db/rbac-role-management-v2.sql \
iam/src/main/resources/db/phase1-platform-master-data-and-permission-management.sql \
order/src/main/resources/db/order.sql \
order/src/main/resources/db/phase1-order-extension.sql \
order/src/main/resources/db/phase1-masterdata-extension.sql \
warehouse/src/main/resources/db/warehouse.sql \
warehouse/src/main/resources/db/warehouse-partner.sql \
warehouse/src/main/resources/db/warehouse-express-company.sql \
warehouse/src/main/resources/db/phase1-warehouse-schema-migration.sql \
warehouse/src/main/resources/db/warehouse-seed.sql \
file/src/main/resources/db/file.sql
do
if [ ! -f "$sql_file" ]; then
echo "找不到初始化 SQL:$sql_file" >&2
exit 1
fi
echo "初始化测试数据库:$sql_file"
docker exec -i "$MYSQL_CONTAINER" sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" --default-character-set=utf8mb4' < "$sql_file"
# Empty-schema baseline only. Never invoked by Compose/Jenkins automatically.
[ "${ALLOW_TEST_SCHEMA_INITIALIZATION:-false}" = "true" ] || { echo 'Explicit TEST SQL authorization required' >&2; exit 2; }
: "${TEST_MYSQL_CONTAINER:?Specify the authorized TEST MySQL container}"
[ "$#" -eq 2 ] || { echo 'Usage: initialize-test-databases.sh <firstleg-baseline.sql> <overseas-baseline.sql>' >&2; exit 2; }
for sql_file in "$1" "$2"; do
[ -f "$sql_file" ] || { echo "Missing reviewed baseline: $sql_file" >&2; exit 2; }
done
[ "$1" != "$2" ] || { echo 'Two distinct reviewed baselines required' >&2; exit 2; }
[ "$(docker inspect -f '{{.State.Running}}' "$TEST_MYSQL_CONTAINER")" = 'true' ] || { echo 'TEST MySQL is not running' >&2; exit 1; }
for sql_file in "$1" "$2"; do
echo "Applying reviewed TEST baseline: $sql_file"
docker exec -i "$TEST_MYSQL_CONTAINER" sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" --default-character-set=utf8mb4' < "$sql_file"
done
echo "测试数据库初始化完成。"