from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker from alien_gateway.config import settings # 数据库引擎配置 (异步) # 注意:aiomysql 用于异步 MySQL 驱动 DATABASE_URL = settings.SQLALCHEMY_DATABASE_URI.replace("mysql+pymysql", "mysql+aiomysql") engine = create_async_engine( DATABASE_URL, echo=True, # 开发环境开启 SQL 日志 pool_pre_ping=True, pool_size=10, max_overflow=20 ) # 创建异步 Session 工厂 AsyncSessionLocal = async_sessionmaker( bind=engine, class_=AsyncSession, expire_on_commit=False, ) async def get_db(): """ FastAPI 依赖注入项,用于获取数据库 Session。 """ async with AsyncSessionLocal() as session: try: yield session finally: await session.close()