scripts-setup-test-db-template.sh 976 Bytes
#!/usr/bin/env bash
# scripts/setup-test-db.sh — 数据库重置脚本:drop + create 空库。
# schema apply 由 Flyway 在 Spring Boot 启动时自动处理(见 docs/04 技术栈 + sql/migrations/V*.sql)。
# seed 数据由测试框架负责(Spring @Sql / Flyway R__seed.sql / data.sql)。
#
# 使用场景:
#  - scripts/test.sh 开头:清空库,让 Spring 启动时 Flyway 从 V1 开始重放所有 migration
#  - scripts/test.sh 结尾:清空库,避免测试遗留污染下次运行
#  - 手动调试时:reset 到零状态

set -euo pipefail

source "$(dirname "$0")/../.env.local"

MYSQL_CMD="mysql -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASSWORD}"

echo "[setup-test-db] drop + create database ${DB_SCHEMA}"
$MYSQL_CMD -e "DROP DATABASE IF EXISTS \`${DB_SCHEMA}\`; CREATE DATABASE \`${DB_SCHEMA}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

echo "[setup-test-db] done — schema will be applied by Flyway when Spring Boot starts"