Support async natif
SQLAlchemy 2.0 stabilise le support async via AsyncSession et create_async_engine. Combiné à asyncpg ou aiosqlite, cela permet d'utiliser SQLAlchemy dans des applications FastAPI ou asyncio sans bloquer la boucle événementielle.
Exemple avec asyncpg
python
from sqlalchemy.ext.asyncio import (
AsyncSession, create_async_engine, async_sessionmaker
)
from sqlalchemy import select
engine = create_async_engine(
'postgresql+asyncpg://user:pass@localhost/db'
)
async_session = async_sessionmaker(engine, class_=AsyncSession)
async def get_users():
async with async_session() as session:
stmt = select(User).where(User.active == True)
result = await session.execute(stmt)
return result.scalars().all()
# Utilisable dans FastAPI :
# @app.get('/users')
# async def users():
# return await get_users()
