51 lines
1.6 KiB
Bash
51 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# ============================================
|
|
# 数据库一键初始化脚本
|
|
# 用法: bash database/init.sh
|
|
# ============================================
|
|
|
|
set -e
|
|
|
|
# 从 .env.local 或 .env 读取配置
|
|
ENV_FILE=""
|
|
if [ -f "apps/server/.env.local" ]; then
|
|
ENV_FILE="apps/server/.env.local"
|
|
elif [ -f "apps/server/.env" ]; then
|
|
ENV_FILE="apps/server/.env"
|
|
else
|
|
echo "错误: 未找到 .env.local 或 .env 文件"
|
|
exit 1
|
|
fi
|
|
|
|
# 读取配置
|
|
DB_HOST=$(grep DB_HOST "$ENV_FILE" | cut -d '=' -f2 | tr -d ' ')
|
|
DB_PORT=$(grep DB_PORT "$ENV_FILE" | cut -d '=' -f2 | tr -d ' ')
|
|
DB_USER=$(grep DB_USERNAME "$ENV_FILE" | cut -d '=' -f2 | tr -d ' ')
|
|
DB_PASS=$(grep DB_PASSWORD "$ENV_FILE" | cut -d '=' -f2 | tr -d ' ')
|
|
DB_NAME=$(grep DB_DATABASE "$ENV_FILE" | cut -d '=' -f2 | tr -d ' ')
|
|
|
|
echo "=========================================="
|
|
echo " 数据库初始化"
|
|
echo "=========================================="
|
|
echo "主机: ${DB_HOST}:${DB_PORT}"
|
|
echo "用户: ${DB_USER}"
|
|
echo "数据库: ${DB_NAME}"
|
|
echo "=========================================="
|
|
|
|
# 执行迁移脚本
|
|
echo ""
|
|
echo "[1/2] 执行数据库迁移..."
|
|
mysql -h "${DB_HOST}" -P "${DB_PORT}" -u "${DB_USER}" -p"${DB_PASS}" < database/migrations/001_init_schema.sql
|
|
echo " ✓ 表结构创建完成"
|
|
|
|
# 执行种子数据
|
|
echo ""
|
|
echo "[2/2] 导入种子数据..."
|
|
mysql -h "${DB_HOST}" -P "${DB_PORT}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" < database/seeds/001_init_data.sql
|
|
echo " ✓ 种子数据导入完成"
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " 初始化完成!"
|
|
echo "=========================================="
|