Ошибка "settings.DATABASES неправильно настроена" при выполнении syncdb с django 1.6.8
Я установил devstack juno и django версии 1.6.8. когда хотите запустить эту команду
python manage.py runserver
Я получил следующую ошибку:
WARNING:root:No local_settings file found.
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Я настроил settings.py из django, и этот файл выглядит так:
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = '{{ project_name }}.urls'
WSGI_APPLICATION = '{{ project_name }}.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
# Internationalization
# https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/{{ docs_version }}/howto/static-files/
STATIC_URL = '/static/'
try:
from local_settings import *
except ImportError:
pass
И все же эти ошибки обнаруживаются в затмении, когда я хочу запустить в затмении
Horizon -> Django-> Синхронизировать БД (manage.py syncdb)
WARNING:root:No local_settings file found.
Traceback (most recent call last):
File "/home/stack/git/horizon/manage.py", line 23, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs
cursor = connection.cursor()
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 162, in cursor
cursor = util.CursorWrapper(self._cursor(), self)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/dummy/base.py", line 15, in complain
raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Finished "/home/stack/git/horizon/manage.py syncdb" execution.
Пожалуйста, помогите мне решить эту ошибку.
Отредактировано:
Во-первых, у меня проблема с DJANGO_SETTINGS_MODULE.
Я установил DJANGO_SETTINGS_MODULE в openstack_dashboard.settings.
и в папке horizon/openstack_dashboard я нашел settings.py и использую соединение с базой данных, как ответили ниже. Теперь это сработало!!!
1 ответ
Вы не указали NAME
базы данных.
редактировать
Прежде всего, вы должны создать базу данных с любым инструментом администратора базы данных, который вы используете. Затем установите его имя в вашем settings.py NAME
переменная.
Пример:
Если вы создаете новую базу данных под названием mysiteDB
, то в вашем файле settings.py, вам нужно сделать это:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysiteDB',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}