【问题标题】:No DB associated to model problem FastApi and Tortoise ORM & aerich没有与模型问题 FastApi 和 Tortoise ORM & aerich 相关的数据库
【发布时间】:2021-10-21 07:40:04
【问题描述】:

我有一个由 FastApi 使用 Tortoise ORM 和 aerich 迁移制作的项目。 Aerich 初始化成功完成,所有迁移也完成。在这里你可以看到我的 main.py:

app = FastAPI()

Tortoise.init_models(settings.TORTOISE_MODELS_LIST, "models")
register_tortoise(
    app, config=settings.TORTOISE_ORM,
    generate_schemas=True,
    add_exception_handlers=True,
)

app.include_router(purchases.router.router)


if __name__ == "__main__":
    uvicorn.run("main:app", debug=True, reload=True, lifespan='on')

这是放置TORTOISE_MODELS_LIST的settings.py:

TORTOISE_MODELS_LIST = ["purchases.models", "aerich.models"]

TORTOISE_ORM = {
    "connections": {"default": DATABASE_URL},
    "apps": {
        "models": {
            "models": TORTOISE_MODELS_LIST,
            "default_connection": "default",
        },
    },
}

我在启动时没有问题,但是当我运行这个方法时:

@router.get("/get/latest", tags=["purchases"], response_model=List[Purchase_Pydantic],
            description="Shows last 25 purchases")
async def get_latest_purchases():
    purchases = await Purchase.all()[:25]
    return Purchase_Pydantic.from_tortoise_orm(purchases)

我有这么奇怪的问题:

tortoise.exceptions.ConfigurationError: No DB associated to model

如何解决这个问题? Aerich 的工作似乎很酷……

【问题讨论】:

  • 嘿@ftelnov。我能问你一些关于你如何用 TortoiseOrm 实现 aerich 的问题吗?我正在努力寻找有关迁移如何工作的任何文档。它是从您的模型自动创建的吗?它适用于 PostgreSQL 吗?如果您有任何其他信息会很棒
  • @bruzza42 Aerich 有一个很好的文档。您只需要调用 init-db 来生成模式和第一次迁移。从此时开始,每当您调用 migrate 时,它​​都会生成新的 .sql 迁移文件。要应用更改,您只需调用升级。

标签: python backend fastapi tortoise-orm


【解决方案1】:

对于任何人都会看到这样的错误:在模型列表中放置的不是相对的模块名称,而是绝对的。所以它将是“app.items.models”,而不是“items.models”。对我有用。

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2021-08-30
    • 2022-08-20
    • 2023-03-22
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多