Migration 1.4 vers 2.0
SQLAlchemy 2.0, publié en janvier 2023, adopte un nouveau style d'exécution unifié. Les requêtes passent de session.query() à session.execute(select(...)). La version 1.4 servait de pont de migration avec les deux styles supportés.
Avant / Après
python
from sqlalchemy import select, create_engine
from sqlalchemy.orm import Session, DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
# SQLAlchemy 1.x : session.query(User).filter_by(name='Alice').first()
# SQLAlchemy 2.0 :
engine = create_engine('sqlite:///db.sqlite3')
with Session(engine) as session:
stmt = select(User).where(User.name == 'Alice')
user = session.execute(stmt).scalar_one_or_none()
print(user)
