feat: 初始化孕育无忧全栈项目基础代码结构
完成项目初始搭建,包含后端FastAPI+MongoDB服务、前端React+Vite项目的完整基础结构,添加各类配置文件与依赖清单,涵盖核心业务初始框架。
This commit is contained in:
38
backend/app/database.py
Normal file
38
backend/app/database.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import os
|
||||
import certifi
|
||||
|
||||
from beanie import init_beanie
|
||||
|
||||
from app.config import settings
|
||||
from app.models.user import User
|
||||
from app.models.report import Report
|
||||
from app.models.analysis import Analysis
|
||||
from app.models.chat import ChatSession
|
||||
from app.models.checkup import CheckupPlan
|
||||
|
||||
|
||||
async def init_db():
|
||||
use_mock = os.environ.get("USE_MONGOMOCK", "").lower() in ("1", "true", "yes")
|
||||
|
||||
if use_mock:
|
||||
# 使用 mongomock 内存数据库(无需安装 MongoDB)
|
||||
from mongomock_motor import AsyncMongoMockClient
|
||||
client = AsyncMongoMockClient()
|
||||
else:
|
||||
from motor.motor_asyncio import AsyncIOMotorClient
|
||||
# Only use TLS for Atlas (mongodb+srv://) connections
|
||||
if settings.mongodb_url.startswith("mongodb+srv://") or "mongodb.net" in settings.mongodb_url:
|
||||
client = AsyncIOMotorClient(settings.mongodb_url, tlsCAFile=certifi.where())
|
||||
else:
|
||||
client = AsyncIOMotorClient(settings.mongodb_url)
|
||||
|
||||
await init_beanie(
|
||||
database=client[settings.mongodb_db_name],
|
||||
document_models=[
|
||||
User,
|
||||
Report,
|
||||
Analysis,
|
||||
ChatSession,
|
||||
CheckupPlan,
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user