Dependency for getting async database sessions.
()
| 28 | |
| 29 | |
| 30 | async def get_db() -> AsyncGenerator[AsyncSession, None]: |
| 31 | """Dependency for getting async database sessions.""" |
| 32 | async with async_session() as session: |
| 33 | token = _session_ctx.set(session) |
| 34 | try: |
| 35 | yield session |
| 36 | await session.commit() |
| 37 | except Exception: |
| 38 | await session.rollback() |
| 39 | raise |
| 40 | finally: |
| 41 | _session_ctx.reset(token) |
| 42 | |
| 43 | |
| 44 | _session_ctx: ContextVar[AsyncSession | None] = ContextVar("db_session_ctx", default=None) |