db.py 475 B

1234567891011121314151617
  1. from app.config import get_settings
  2. from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
  3. settings = get_settings()
  4. engine = create_async_engine(
  5. settings.database_url,
  6. echo=settings.backend_env == "development",
  7. )
  8. async_session = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
  9. async def get_db() -> AsyncSession: # type: ignore[misc]
  10. async with async_session() as session:
  11. yield session