database.py 558 B

1234567891011121314151617181920
  1. from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
  2. from alien_gateway.config import settings
  3. # 异步数据库引擎
  4. engine = create_async_engine(
  5. settings.SQLALCHEMY_DATABASE_URI.replace("mysql+pymysql", "mysql+aiomysql"),
  6. echo=True,
  7. pool_pre_ping=True,
  8. )
  9. AsyncSessionLocal = async_sessionmaker(
  10. bind=engine,
  11. class_=AsyncSession,
  12. expire_on_commit=False,
  13. )
  14. async def get_db():
  15. """获取数据库 Session 的依赖项"""
  16. async with AsyncSessionLocal() as session:
  17. yield session