#!/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 ""