from collections.abc import Generator from sqlalchemy.orm import Session from app.core.database import get_database_settings from packages.adapters.sqlalchemy_impl import build_session_factory, ensure_database_exists, initialize_database settings = get_database_settings() ensure_database_exists(settings.database_url) engine, SessionLocal = build_session_factory( settings.database_url, pool_size=settings.pool_size, max_overflow=settings.max_overflow, pool_timeout=settings.pool_timeout, pool_recycle=settings.pool_recycle, ) initialize_database(engine) def get_db() -> Generator[Session, None, None]: db = SessionLocal() try: yield db finally: db.close()