|
- from typing import AsyncGenerator
- from sqlalchemy.exc import SQLAlchemyError
- from sqlalchemy.ext.asyncio import AsyncSession
-
- from app.db.base import AsyncSessionLocal
-
-
- async def get_db_session() -> AsyncGenerator[AsyncSession, None]:
- async with AsyncSessionLocal() as session:
- try:
- yield session
- await session.commit()
- except SQLAlchemyError as e:
- await session.rollback()
- raise
- finally:
- await session.close()
|