fix: единый singleton engine в bd, убраны 17 локальных make_engine()

- bd/__init__.py: добавлены get_engine() и get_session() — один SQLAlchemy engine на весь процесс
- make_engine(): pool_size=5, max_overflow=5, pool_timeout=30, pool_recycle=1800
- Все 17 route-файлов: убраны локальные get_session()/make_engine(), импорт из bd
- transfer_crud.py: _get_session() → get_session() из bd
- init_data_base.py: get_engine() вместо make_engine()
- Результат: 78 idle соединений → 1
This commit is contained in:
jze9
2026-05-18 11:12:03 +00:00
parent 7d90737986
commit 94e78a9e77
18 changed files with 50 additions and 76 deletions

View File

@@ -19,7 +19,7 @@ from typing import List, Optional
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from bd import make_engine
from bd import get_session
from bd.tables.poll import Poll
from bd.tables.choice import Choice
from bd.tables.scale import ScaleDimension, ChoiceScore
@@ -27,9 +27,6 @@ from bd.tables.scale import ScaleDimension, ChoiceScore
router = APIRouter(tags=["scale"])
def get_session():
from sqlalchemy.orm import sessionmaker
return sessionmaker(bind=make_engine(), future=True)
# ---------------------------------------------------------------------------