‘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’"