我不明白为什么Django不使用我在settings.py文件中指定的数据库引擎,而是使用值django.db.backends.dummy
。Django 1.4.3一直使用虚拟数据库引擎设置值
这里是位于/project/app/settings.py 我的settings.py文件的DB部分:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db_name',
'USER': 'my_user',
'PASSWORD': 'my_pass',
'HOST': '',
'PORT': '',
}
}
这里是什么Django的调试日志显示:
DATABASES
{'default': {'ENGINE': 'django.db.backends.dummy',
'HOST': '',
'NAME': 'my_db_name',
'OPTIONS': {},
'PASSWORD': u'********************',
'PORT': '',
'TEST_CHARSET': None,
'TEST_COLLATION': None,
'TEST_MIRROR': None,
'TEST_NAME': None,
'TIME_ZONE': 'UTC',
'USER': 'my_user'}}
我正在使用gunicorn和nginx运行本站。该站点目前已将调试模式设置为True。
更新1:当我运行python manage.py diffsettings
我得到以下(发动机是正确的):
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'TEST_MIRROR': None, 'NAME': 'my_db_name', 'TEST_CHARSET': None, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'OPTIONS': {}, 'HOST': '', 'USER': 'my_user', 'TEST_NAME': None, 'PASSWORD': 'my_pass', 'PORT': ''}}
更新2:我也这样尝试过的外壳,正常工作,我能达到我的分贝:
# python manage.py shell
>>> from myapp.models import MyModel
>>> test = MyModel.objects.all()
>>> test
# Outputs all objects from MyModel.
更新3:一些奇怪的HAPP效果图创作。要调试这个问题,我在settings.py注释掉所有INSTALLED APPS
,重启nginx的,但Django的仍然显示他们在调试日志:
INSTALLED_APPS
('django.contrib.auth',
'django.contrib.humanize',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'grappelli',
'django.contrib.admin',
'foureggs',
'registration',
'massadmin')
它看起来像Django是使用某种的我的设置缓存版本.py文件。
有没有名为'settings.pyc'的文件,删除它并重新启动gunicorn。 – vedarthk 2013-02-12 07:25:16
@vedarthk不,没有settings.pyc文件。 – finspin 2013-02-12 07:44:54
你不小心导入了'local_settings.py'或类似的东西?在'settings.py'中搜索'import'。或者,也许有一个第三方应用程序窃听你的设置? – Thomas 2013-02-12 07:57:19