优化数据库

This commit is contained in:
yml
2026-06-02 20:37:00 +08:00
parent 5cb2f33872
commit af754bb594
9 changed files with 206 additions and 185 deletions
+9 -12
View File
@@ -5,6 +5,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
COMPOSE_FILE="${ROOT_DIR}/deploy/docker-compose.dev.yml"
BACKEND_ENV="${ROOT_DIR}/backend/.env"
BACKEND_ENV_EXAMPLE="${ROOT_DIR}/backend/.env.example"
INIT_SQL="${ROOT_DIR}/backend/migrations/000001_init.sql"
BACKEND_PORT="${DEV_BACKEND_PORT:-8080}"
FRONTEND_PORT="${DEV_FRONTEND_PORT:-5173}"
BACKEND_HEALTH_URL="${DEV_BACKEND_HEALTH_URL:-http://127.0.0.1:${BACKEND_PORT}/health}"
@@ -51,7 +52,7 @@ show_help() {
选项:
--reset-db 重置数据库(删除并重建)
--seed-only 仅重新加载种子数据
--seed-only 仅重新同步基础数据
--no-frontend 不启动前端
--no-backend 不启动后端
-h, --help 显示帮助信息
@@ -72,7 +73,7 @@ show_help() {
示例:
./scripts/dev.sh # 正常启动
./scripts/dev.sh --reset-db # 重置数据库后启动
./scripts/dev.sh --seed-only # 重新加载种子数据
./scripts/dev.sh --seed-only # 重新同步基础数据
EOF
exit 0
}
@@ -222,16 +223,12 @@ init_database() {
if [[ "${table_count}" == "0" ]]; then
log "首次启动,初始化数据库..."
local migration
for migration in "${ROOT_DIR}"/backend/migrations/*.sql; do
log "执行迁移:$(basename "${migration}")"
mysql_hfb --default-character-set=utf8mb4 hfb_sys < "${migration}"
done
log "执行初始化脚本:$(basename "${INIT_SQL}")"
mysql_hfb --default-character-set=utf8mb4 hfb_sys < "${INIT_SQL}"
log_success "数据库初始化完成"
elif [[ "${SEED_ONLY}" == "1" ]]; then
log "重新加载种子数据..."
mysql_hfb --default-character-set=utf8mb4 hfb_sys < "${ROOT_DIR}/backend/migrations/000002_seed.sql"
log_success "种子数据加载完成"
log "重新同步基础数据..."
mysql_hfb --default-character-set=utf8mb4 hfb_sys < "${INIT_SQL}"
else
log "数据库已存在,跳过迁移(使用 --reset-db 重建)"
fi
@@ -320,9 +317,9 @@ main() {
init_database
# 仅加载种子数据模式
# 仅同步基础数据模式
if [[ "${SEED_ONLY}" == "1" ]]; then
log_success "种子数据加载完成,退出"
log_success "基础数据同步完成,退出"
exit 0
fi