from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, DeclarativeBase from app.config import get_settings settings = get_settings() engine = create_engine( settings.DATABASE_URL, echo=settings.DEBUG, pool_pre_ping=True, pool_size=5, max_overflow=10, pool_recycle=3600, ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) class Base(DeclarativeBase): pass def get_db(): db = SessionLocal() try: yield db db.commit() except Exception: db.rollback() raise finally: db.close()