Coverage for src / database.py: 78%

9 statements  

« 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) 

8 

9Base = declarative_base() 

10 

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) 

19 

20# Фабрика сессий 

21async_session = async_sessionmaker( 

22 bind=async_engine, 

23 expire_on_commit=False, 

24 autoflush=False 

25) 

26 

27 

28# Dependency для FastAPI 

29async def get_db() -> AsyncSession: 

30 """Генератор сессий для Dependency Injection""" 

31 async with async_session() as session: 

32 yield session