from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine from sqlalchemy.orm import sessionmaker, declarative_base from contextlib import asynccontextmanager from dotenv import load_dotenv import os from collections.abc import AsyncGenerator load_dotenv() DATABASE_URL = os.getenv("DATABASE_URL") engine = create_async_engine(DATABASE_URL) AsyncSessionLocal = sessionmaker(bind=engine, class_=AsyncSession, expire_on_commit=False) Base = declarative_base() async def get_session() -> AsyncGenerator[AsyncSession, None]: async with AsyncSessionLocal() as session: yield session