---
name: sqlalchemy-2x
description: SQLAlchemy 2.x — select() com session.execute, Mapped[] nos modelos
roles: [dev]
---
- Use `select(...)` com `session.execute()`, não `session.query()` (legacy 1.x).
- Modelos com `Mapped[X]` e `mapped_column(...)`.
- Sessions via context manager (`with Session() as s:`).
- `selectinload`/`joinedload` explícitos contra N+1.
- Async session (`AsyncSession`) se o app é async.
- Migrations com Alembic, reversíveis.
