Django执行makemigrations/migrate报错:'djongo'非可用数据库后端
问题:执行
makemigrations/migrate时提示'djongo'不是可用数据库后端 执行python manage.py makemigrations或migrate命令时触发以下错误:
django.core.exceptions.ImproperlyConfigured: 'djongo' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'postgresql', 'sqlite3'
环境信息
- Python版本:3.10
- 已安装依赖包:
asgiref 3.6.0 Django 4.1.7 djongo 1.3.6 dnspython 2.3.0 pip 23.0.1 pymongo 4.3.3 setuptools 67.6.0 sqlparse 0.2.4 tzdata 2022.7
当前配置(settings.py)
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'dapp', 'djongo', ] DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'testdb', 'HOST': 'localhost', 'PORT': 27017, } }
解决方案
1. 移除INSTALLED_APPS中的'djongo'
djongo是数据库后端适配器,不需要添加到INSTALLED_APPS注册,删除这一行后修改为:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'dapp', ]
2. 修复版本兼容性问题
djongo 1.3.6对Django 4.1.x的支持存在兼容缺陷,建议升级到适配的版本:
pip install --upgrade djongo
若升级后仍有问题,可指定稳定兼容版本:
pip install djongo==1.3.8
3. 验证虚拟环境依赖(若使用)
确保在项目对应的虚拟环境中安装了djongo,避免全局环境与虚拟环境依赖混淆。执行以下命令确认:
pip list
若列表中无djongo,重新在虚拟环境内安装:
pip install djongo
4. 强制重新安装修复损坏文件
若之前安装过程有报错导致文件损坏,执行强制重装:
pip install --force-reinstall djongo
5. 检查MongoDB服务状态
确认本地MongoDB服务正在运行且27017端口可访问,可通过以下命令验证:
mongosh --host localhost --port 27017
若无法连接,先启动MongoDB服务再执行Django命令。
内容的提问来源于stack exchange,提问作者ashish pandey
相关产品推荐
相关产品推荐

