执行命令 init-db 时出现 tortoise.init 错误

问题描述 投票:0回答:0

使用 aerich 执行 init-db 命令后出现错误,即使我在执行 init-db 之前已经执行过此命令:

aerich init -t database.TORTOISE_ORM
,

这是我的程序的示例: 数据库.py

from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
from tortoise import Tortoise, fields
from tortoise.models import Model

TORTOISE_ORM = {
    "connections": {"default": "mysql://user:password@localhost:3306/LogAudio"},
    "apps": {
        "models": {
            "models": ["model.LogAudio", "aerich.models"],
            "default_connection": "default",
        },
    },
}

def init_db(app: FastAPI) -> None:
    register_tortoise(
        app,
        db_url={"default": "mysql://user:password@localhost:3306/LogAudio"},
        modules={"models": ["model.LogAudio", "aerich.models"]},
        generate_schemas=True,
        add_exception_handlers=True,
    )

这是我的main.py

from fastapi import FastAPI
from database import init_db
app = FastAPI()
@app.on_event("startup")
async def startup_event():
    init_db(app)

model.py

from tortoise.models import Model
from tortoise import fields

class LogVoice(Model):
    id = fields.CharField(pk=True, max_length=16)
    transcript = fields.CharField(max_length=255)
    translate = fields.CharField(max_length=255)
    voice_audio = fields.BinaryField() # fields menyimpan file dalam bentuk byte

    def __str__(self):
        return self.id

错误是这样的:

raise ConfigurationError( tortoise.exceptions.ConfigurationError: DB configuration not initialised. Make sure to call Tortoise.init with a valid configuration before attempting to create connections.

我该怎么做才能解决这个问题有人可以帮助我吗?

python database fastapi mysql-python tortoise-orm
© www.soinside.com 2019 - 2024. All rights reserved.