‘AsyncSession’ object has no attribute ‘query’

Ошибка в SQLAlchemy: ‘AsyncSession’ object has no attribute ‘query’.

Что произошло

SQLAlchemy с определенной версии обновил синтаксис.

Вместо db.query(Task) теперь нужно использовать db.execute(select(Task))

Пример

Раньше работало:

async def fetch_all(db: Session, skip: int = 0, limit: int = 20):
    return db.query(Task).order_by(Task.time.desc()).offset(skip).limit(limit).all()

Сейчас нужно, чтобы работало:

async def fetch_all(db: AsyncSession, skip: int = 0, limit: int = 20):
    result = await db.execute(select(Task).order_by(Task.time.desc()).limit(20))
    return result.scalars().all()

English Query (запросы по теме на английском языке)

Asyncsession sqlalchemy query

SqlAlchemy asyncio orm

How to query the database

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"‘AsyncSession’ object has no attribute ‘query’"