""" 数据库连接配置 管理数据库引擎、会话和连接池 """ from sqlalchemy import create_engine from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker from sqlalchemy.orm import sessionmaker from app.config import Settings # 数据库配置 DATABASE_FILE = Settings().DB_FILE ASYNC_DATABASE_URL = f"sqlite+aiosqlite:///{DATABASE_FILE}" SYNC_DATABASE_URL = f"sqlite:///{DATABASE_FILE}" # 创建异步引擎 async_engine = create_async_engine( ASYNC_DATABASE_URL, echo=False, pool_pre_ping=True, pool_recycle=3600 ) # 创建异步会话工厂 AsyncSessionLocal = async_sessionmaker( async_engine, class_=AsyncSession, expire_on_commit=False ) # 创建同步引擎和会话(用于初始化) sync_engine = create_engine( SYNC_DATABASE_URL, echo=False, pool_pre_ping=True, pool_recycle=3600 ) SessionLocal = sessionmaker(bind=sync_engine) async def get_db_session() -> AsyncSession: """获取数据库会话""" async with AsyncSessionLocal() as session: return session def get_sync_session(): """获取同步数据库会话(用于初始化等场景)""" return SessionLocal()