Coverage for src / database.py: 78%
9 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-10 22:03 +0200
1from src.config import DATABASE_URL
2from sqlalchemy.orm import declarative_base
3from sqlalchemy.ext.asyncio import (
4 create_async_engine,
5 AsyncSession,
6 async_sessionmaker
7)
9Base = declarative_base()
11# Асинхронный движок
12async_engine = create_async_engine(
13 DATABASE_URL,
14 echo=True,
15 pool_size=20,
16 max_overflow=10,
17 pool_timeout=30
18)
20# Фабрика сессий
21async_session = async_sessionmaker(
22 bind=async_engine,
23 expire_on_commit=False,
24 autoflush=False
25)
28# Dependency для FastAPI
29async def get_db() -> AsyncSession:
30 """Генератор сессий для Dependency Injection"""
31 async with async_session() as session:
32 yield session