使用 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.
我应该怎么做才能解决这个问题有人可以帮助我