実行するpython manage.py runserver
と、次のエラーが表示されます。
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x1cc9cd0>>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 91, in inner_run
self.validate(display_num_errors=True)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 30, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 158, in get_app_errors
self._populate()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name, True)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 88, in load_app
models = import_module('.models', app_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/dist-packages/South-0.7.6-py2.7.egg/south/models.py", line 2, in <module>
from south.db import DEFAULT_DB_ALIAS
File "/usr/local/lib/python2.7/dist-packages/South-0.7.6-py2.7.egg/south/db/__init__.py", line 81, in <module>
db = dbs[DEFAULT_DB_ALIAS]
KeyError: 'default'
ここに私のsettings.pyがあります:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'foureggs',
'USER': 'myuser',
'PASSWORD': 'mypass',
'HOST': '',
'PORT': '',
}
}
ここに同じ問題の質問があります。答えは、「設定に「デフォルト」という名前のデータベースがあるはずです」と述べています。私は本当にそれに従っていません。私のデータベース名は「foureggs」なので、明らかにそれを使いたいです。
更新:次python manage.py diffsettings
の出力が表示されますが、これは正しくありません(関連する DATABASE 行のみを貼り付けると、残りの設定は問題ないように見えます)。
DATABASES = {'default': {'ENGINE': 'django.db.backends.dummy', 'TEST_MIRROR': None, 'NAME': '', 'TEST_CHARSET': None, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'PORT': '', 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': '', 'OPTIONS': {}}}
私のプロジェクトには設定ファイルが 1 つしかなく、それは正しい app ディレクトリにあります。上記の DATABASE 行はどこから来たのですか?
更新 2: 何が問題なのかわかりました。Heroku 導入ガイドsettings.py
の指示に従って追加したのは、これらの 2 行です。それらをコメントアウトすると、すべて正常に動作します。今、なぜそれが問題を引き起こしているのかを理解する必要があります。
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES['default'] = dj_database_url.config()