"""Подключение к PostgreSQL для gost-воркера.""" from contextlib import contextmanager from typing import Generator from sqlalchemy import create_engine from sqlalchemy.orm import Session, sessionmaker from app.config import settings engine = create_engine( settings.database_url_sync, pool_size=5, max_overflow=10, pool_pre_ping=True, ) SessionLocal = sessionmaker(bind=engine, autocommit=False, autoflush=False) @contextmanager def db_session() -> Generator[Session, None, None]: """Контекстный менеджер для сессии БД.""" session = SessionLocal() try: yield session session.commit() except Exception: session.rollback() raise finally: session.close()