from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.engine import URL from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import declarative_base from config import load_config ApplicationConfig = load_config() url = URL.create( drivername="postgresql+asyncpg", username=ApplicationConfig.POSTGRES_USERNAME, password=ApplicationConfig.POSTGRES_PW, host=ApplicationConfig.POSTGRES_SERVER, database=ApplicationConfig.POSTGRES_DBNAME00, port=ApplicationConfig.POSTGRES_PORT ) engine = create_async_engine(url, echo=False) AsyncSessionLocal = sessionmaker( engine, class_=AsyncSession, expire_on_commit=False ) Base = declarative_base() # Dependency to get DB session async def get_db() -> AsyncSession: async with AsyncSessionLocal() as session: try: yield session finally: await session.close()