45 lines
1.8 KiB
Bash
45 lines
1.8 KiB
Bash
#!/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-fields.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-seed.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"
|
||
done
|
||
|
||
echo "测试数据库初始化完成。"
|