You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Django集成MongoDB执行迁移报djongo后端不可用错误

问题根因

这个报错本质是Djongo数据库后端导入失败,触发了Django的内置后端校验逻辑,核心原因是当前安装的依赖版本完全不兼容:

  • 安装的djongo==1.3.6最高仅支持Django 3.2及以下版本,无法适配当前环境的Django 4.0.5
  • 安装的pymongo==4.1.1版本过高,Djongo 1.3.6仅适配pymongo 3.x系列版本,4.x版本的接口变动会直接导致导入失败
  • 同时安装了djongo和django-mongoengine/mongoengine两套独立的MongoDB对接方案,混装容易出现模块导入冲突
修复步骤

按顺序操作即可解决:

  1. 先卸载所有冲突的依赖,在激活的虚拟环境中执行命令:
pip uninstall -y Django djongo pymongo django-mongoengine mongoengine
  1. 选择以下两套适配方案中的一种安装对应依赖,禁止两套混装:

方案1:使用Djongo(兼容Django原生ORM操作逻辑)

安装版本互认的依赖包:

pip install Django==3.2.19 djongo==1.3.6 pymongo==3.12.3

安装完成后检查settings.py中的数据库配置,ENGINE字段必须正确填写:

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': '你的MongoDB数据库名',
        'CLIENT': {
            'host': 'mongodb://localhost:27017/' # 替换为实际的MongoDB连接地址
        }
    }
}

方案2:使用MongoEngine(原生MongoDB驱动,不依赖Django ORM)

如果不需要用Django ORM操作MongoDB,可以选这套方案,无需安装Djongo:

pip install Django==4.0.5 mongoengine==0.24.1 django-mongoengine==0.5.4

该方案不需要将MongoDB配置到DATABASES节点,直接在settings.py中添加MongoDB连接参数,在项目根目录的__init__.py中初始化连接即可。
3. 依赖安装完成、配置核对无误后,先执行python manage.py check确认无模块导入错误,再执行迁移相关命令。注意之前使用的runmigrations不是Django合法命令,迁移的正确命令为:

# 生成迁移文件
python manage.py makemigrations 你的应用名
# 执行迁移写入数据库
python manage.py migrate
额外排查项

如果按上述步骤操作后仍报错,先在虚拟环境中打开Python交互终端,手动执行import djongo查看具体的导入报错信息针对性处理:

  • 如果提示sqlparse相关错误,是当前安装的sqlparse==0.2.4版本过低,执行pip install sqlparse==0.4.4升级即可
  • 如果提示模块找不到,检查项目目录下是否存在命名为djongo.py的文件或者名为djongo的文件夹,这类重名文件会覆盖第三方包的导入路径,重命名即可。

内容的提问来源于stack exchange,提问作者def init

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:01:10