Ошибка в 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()
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()
result = await db.execute(select(Task).order_by(Task.time.desc()).limit(20))
return result.scalars().all()