deep-risk/backend/setup_database.sh
2025-12-14 20:08:27 +08:00

64 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# 数据库一键初始化脚本
echo "=============================================="
echo " DeepRisk 数据库初始化脚本"
echo "=============================================="
echo ""
# 检查虚拟环境
if [ ! -d "venv" ]; then
echo "❌ 未找到虚拟环境 venv"
echo "请先运行: python3 -m venv venv && source venv/bin/activate"
exit 1
fi
# 激活虚拟环境
source venv/bin/activate
# 检查依赖
echo "📦 检查依赖包..."
if ! python -c "import asyncpg, sqlalchemy, fastapi" 2>/dev/null; then
echo "⚠️ 依赖包不完整,正在安装..."
pip install -r requirements-working.txt
fi
# 检查数据库连接
echo ""
echo "🔍 检查数据库连接..."
if ! python -c "from app.database import engine; import asyncio; asyncio.run(engine.connect())" 2>/dev/null; then
echo "❌ 数据库连接失败!"
echo ""
echo "请确保:"
echo "1. PostgreSQL 服务正在运行 (端口 15432)"
echo "2. 数据库 'deeprisk_db' 已创建"
echo "3. .env 文件中的数据库配置正确"
echo ""
echo "创建数据库命令:"
echo " createdb deeprisk_db -U postgres -h localhost -p 15432"
exit 1
fi
echo "✅ 数据库连接正常"
echo ""
# 询问是否重新初始化
echo "是否重新初始化数据库?(会清空所有现有数据)"
read -p "输入 y 继续,其他键跳过: " -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "跳过数据库初始化"
else
echo ""
echo "🚀 开始初始化数据库..."
python init_all.py
fi
echo ""
echo "=============================================="
echo " 初始化完成!"
echo "=============================================="
echo ""
echo "启动开发服务器:"
echo " uvicorn app.main:app --reload --host 0.0.0.0 --port 8000"
echo ""