/
zemars
/
it-dashboard
Обзор
Документация
Войти
/
zemars
/
it-dashboard
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
backend/app/database.py
38 строк
1 KB
Дмитрий
fix(docs): актуализировать risk_log и docstring init_db
26 май 2026, 22:07
26 май 2026, 22:07
9981d43
Код
Авторство
О чём код?
# Автор: Максим Печенкин — подключение к БД # Используем SQLAlchemy 2.0 в декларативном стиле. Сессии создаём через # SessionLocal, в роутерах достаём через FastAPI-зависимость get_db(). from typing import Generator from sqlalchemy import create_engine from sqlalchemy.orm import DeclarativeBase, sessionmaker, Session from .config import get_settings settings = get_settings() # pool_pre_ping=True — проверяем коннект перед использованием (на случай restart БД) engine = create_engine( settings.database_url, pool_pre_ping=True, pool_size=5, max_overflow=10, echo=False, ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) class Base(DeclarativeBase): """Базовый класс для всех SQLAlchemy-моделей.""" pass def get_db() -> Generator[Session, None, None]: """FastAPI-зависимость: открывает сессию и гарантированно её закрывает.""" db = SessionLocal() try: yield db finally: db.close()