20 lines
675 B
Python
20 lines
675 B
Python
"""
|
||
Асинхронное подключение к PostgreSQL через SQLAlchemy 2.0.
|
||
|
||
engine: create_async_engine с pool_size=10
|
||
async_session: async_sessionmaker для создания сессий
|
||
"""
|
||
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
|
||
from app.config import settings
|
||
|
||
engine = create_async_engine(settings.database_url, pool_size=10, max_overflow=20)
|
||
async_session = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
||
|
||
|
||
async def get_db() -> AsyncSession:
|
||
async with async_session() as session:
|
||
try:
|
||
yield session
|
||
finally:
|
||
await session.close()
|