【发布时间】:2015-05-22 15:14:30
【问题描述】:
我正在尝试在我的 Django 项目中使用多个数据库,但它只识别默认数据库。在我的 settings.py 文件中,我有以下设置:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "primary",
"USER": "admin",
"PASSWORD": "password",
"HOST": "",
"PORT": "",
},
"deals": {
"ENGINE": 'django_mongodb_engine',
"NAME": "database",
"HOST": "HOSTNAME",
"PORT": "27017",
"USER": "",
"PASSWORD": "",
"SUPPORTS_TRANSACTIONS": False,
},
}
但是当我尝试运行时
python manage.py syncdb --database=deals
或
python manage.py inspectdb --database=deals
我收到以下错误:
django.db.utils.ConnectionDoesNotExist: The connection deals doesn't exist
当我尝试在 /lib/python2.7/site-packages/django/db/utils.py 中进行调试时,我看到只有默认数据库被识别。当我尝试创建第二个本地数据库时遇到同样的错误。
编辑 我已经根据 cmets 更新了我的 settings.py 文件,但仍然有同样的问题。
【问题讨论】:
-
文档docs.djangoproject.com/en/1.8/ref/settings/#engine 说您应该使用完全限定的路径。
deals的那个不是完全合格的。default的那个不完整。 -
我根据评论做了一些更改,但仍然有同样的问题。我修复了默认数据库,但似乎找不到 mongodb 的完全限定路径,因为 (django-mongodb-engine.readthedocs.org/en/latest/reference/…) 的 MongoDB 文档说要使用 django_mongodb_engine
-
你有几个设置文件,其中设置了 DATABASE?