66 lines
1.8 KiB
Batchfile
66 lines
1.8 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
REM ============================================
|
|
REM 数据库一键初始化脚本 (Windows)
|
|
REM 用法: 双击运行或在项目根目录执行 database\init.bat
|
|
REM ============================================
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
REM 读取 .env.local 配置
|
|
set "ENV_FILE="
|
|
if exist "apps\server\.env.local" (
|
|
set "ENV_FILE=apps\server\.env.local"
|
|
) else if exist "apps\server\.env" (
|
|
set "ENV_FILE=apps\server\.env"
|
|
) else (
|
|
echo 错误: 未找到 .env.local 或 .env 文件
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM 解析配置
|
|
for /f "usebackq tokens=1,* delims==" %%a in ("!ENV_FILE!") do (
|
|
if "%%a"=="DB_HOST" set "DB_HOST=%%b"
|
|
if "%%a"=="DB_PORT" set "DB_PORT=%%b"
|
|
if "%%a"=="DB_USERNAME" set "DB_USER=%%b"
|
|
if "%%a"=="DB_PASSWORD" set "DB_PASS=%%b"
|
|
if "%%a"=="DB_DATABASE" set "DB_NAME=%%b"
|
|
)
|
|
|
|
echo ==========================================
|
|
echo 数据库初始化
|
|
echo ==========================================
|
|
echo 主机: %DB_HOST%:%DB_PORT%
|
|
echo 用户: %DB_USER%
|
|
echo 数据库: %DB_NAME%
|
|
echo ==========================================
|
|
echo.
|
|
|
|
REM 执行迁移
|
|
echo [1/2] 执行数据库迁移...
|
|
mysql -h %DB_HOST% -P %DB_PORT% -u %DB_USER% -p%DB_PASS% < database\migrations\001_init_schema.sql
|
|
if errorlevel 1 (
|
|
echo x 迁移失败,请检查 MySQL 连接配置
|
|
pause
|
|
exit /b 1
|
|
)
|
|
echo √ 表结构创建完成
|
|
echo.
|
|
|
|
REM 执行种子数据
|
|
echo [2/2] 导入种子数据...
|
|
mysql -h %DB_HOST% -P %DB_PORT% -u %DB_USER% -p%DB_PASS% %DB_NAME% < database\seeds\001_init_data.sql
|
|
if errorlevel 1 (
|
|
echo x 种子数据导入失败
|
|
pause
|
|
exit /b 1
|
|
)
|
|
echo √ 种子数据导入完成
|
|
echo.
|
|
|
|
echo ==========================================
|
|
echo 初始化完成!
|
|
echo ==========================================
|
|
pause
|