from typing import Generator from sqlalchemy import create_engine from sqlalchemy.orm import Session, sessionmaker from app.shared.config import settings engine = create_engine(settings.DATABASE_URI) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_session() -> Generator[Session, None, None]: db: Session = SessionLocal() try: yield db db.commit() except Exception: db.rollback() finally: db.close()