N. Yeshikhin
N. Yeshikhin

Reputation: 61

python databases library can't fetch_all from mysql database

I copied the code from here (official fast api webpage)

And what I get is

  Traceback (most recent call last):
  ...
  File "c:\users\nikhi\desktop\upwork\srinath srinath\api_project\venv\lib\site-packages\databases\backends\mysql.py", line 115, in fetch_all
    metadata = CursorResultMetaData(context, cursor.description)
  File "c:\users\nikhi\desktop\upwork\srinath srinath\api_project\venv\lib\site-packages\sqlalchemy\engine\cursor.py", line 164, in __init__
    (
ValueError: not enough values to unpack (expected 5, got 4)

The code is:

from typing import List

import databases
import sqlalchemy
from fastapi import FastAPI
from pydantic import BaseModel

database = databases.Database(DATABASE_URL)

metadata = sqlalchemy.MetaData()

notes = sqlalchemy.Table(
    "notes",
    metadata,
    sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True),
    sqlalchemy.Column("text", sqlalchemy.String(100)),
    sqlalchemy.Column("completed", sqlalchemy.Boolean),
)


engine = sqlalchemy.create_engine(
    DATABASE_URL
)
metadata.create_all(engine)

app = FastAPI()


@app.on_event("startup")
async def startup():
    await database.connect()


@app.on_event("shutdown")
async def shutdown():
    await database.disconnect()


@app.get("/notes/", response_model=List[Note])
async def read_notes():
    query = notes.select()
    return await database.fetch_all(query=query)

What happens is: I am running the code, table is created and after I try to fetch the results. It throws this Exception all the time.

Upvotes: 0

Views: 366

Answers (1)

N. Yeshikhin
N. Yeshikhin

Reputation: 61

Downgrading SQLalchemy to 1.4.41 helped

Upvotes: 4

Related Questions