""" Database connection and session management """ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, Session from sqlalchemy.pool import NullPool from app.core.config import get_settings settings = get_settings() # Create engine with connection pooling disabled for SQLite compatibility # In production with PostgreSQL, use QueuePool for better performance engine = create_engine( settings.database_url, echo=settings.debug, poolclass=NullPool if "sqlite" in settings.database_url else None, ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_db() -> Session: """Dependency: get database session""" db = SessionLocal() try: yield db finally: db.close()