"""Database session factory for control-pipeline. Connects to the shared PostgreSQL with search_path set to compliance schema. """ from sqlalchemy import create_engine, event from sqlalchemy.orm import sessionmaker from config import settings engine = create_engine( settings.DATABASE_URL, pool_pre_ping=True, pool_size=5, max_overflow=10, echo=False, ) @event.listens_for(engine, "connect") def set_search_path(dbapi_connection, connection_record): cursor = dbapi_connection.cursor() cursor.execute(f"SET search_path TO {settings.SCHEMA_SEARCH_PATH}") cursor.close() dbapi_connection.commit() SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_db(): """FastAPI dependency for DB sessions.""" db = SessionLocal() try: yield db finally: db.close()