Django が settings.py ファイルで指定したデータベース エンジンを使用せず、代わりに value を使用する理由がわかりませんdjango.db.backends.dummy
。
/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 に設定しています。
UPDATE 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': ''}}
UPDATE 2:これもシェルで試してみましたが、期待どおりに動作し、データベースに到達できます:
# python manage.py shell
>>> from myapp.models import MyModel
>>> test = MyModel.objects.all()
>>> test
# Outputs all objects from MyModel.
更新 3:何か奇妙なことが起こっています。この問題をデバッグするために、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 は、何らかのキャッシュ バージョンの settings.pyファイルを使用しているようです。