from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine from sqlalchemy.orm import sessionmaker from app.core.config import settings # Create async engine engine = create_async_engine( settings.SQLALCHEMY_DATABASE_URL.replace("sqlite:///", "sqlite+aiosqlite:///"), connect_args={"check_same_thread": False}, ) # Create async session async_session = sessionmaker( engine, class_=AsyncSession, expire_on_commit=False, autocommit=False, autoflush=False, ) async def get_db() -> AsyncSession: """ Dependency for getting an async database session. """ async with async_session() as session: try: yield session finally: await session.close()