执行aerich init-db为何抛出tortoise.exceptions.ConfigurationError:数据库配置未初始化?
解决aerich init-db报错"DB configuration not initialised"问题
针对你遇到的aerich init-db触发Tortoise.init未初始化的错误,以下是针对性的排查和修复步骤:
1. 修正模型路径配置
你的模型文件位于项目根目录的models.py,但当前TORTOISE_ORM配置里的模型路径写的是"app.models"——如果项目根目录没有app子文件夹,这个路径会导致Tortoise找不到模型文件,进而触发配置初始化失败。
修改settings.py中的TORTOISE_ORM配置:
TORTOISE_ORM = { "connections": {"default": db_url}, "apps": { "models": { "models": ["models", "aerich.models"], # 将"app.models"替换为"models" "default_connection": "default", }, }, }
2. 验证db_url的有效性
确保settings.py中的db_url是格式正确的PostgreSQL连接字符串,示例:
# 替换为你的实际数据库信息 db_url = "postgresql://username:password@localhost:5432/your_database_name"
同时确认:
- PostgreSQL服务已启动
- 目标数据库已创建(或当前数据库用户拥有创建数据库的权限)
- 连接参数(主机、端口、用户名、密码)均正确
3. 重置aerich配置并重新执行
- 删除项目根目录下已生成的
migrations文件夹 - 重新初始化aerich:
aerich init -t settings.TORTOISE_ORM
- 执行数据库初始化:
aerich init-db
额外检查点
- 确保运行aerich命令时,终端工作目录处于项目根目录(即
settings.py和models.py所在的目录) - 检查Python环境是否正确,确认已安装必要依赖:
pip install tortoise-orm aerich asyncpg
内容的提问来源于stack exchange,提问作者Mod diller
相关产品推荐
相关产品推荐

