Django Postgresql配置错误:配置不正确:settings.DATABASES
问题描述:
Django的新手!Django Postgresql配置错误:配置不正确:settings.DATABASES
在从sqlite3切换到postgresql的过程中,我试图按照链接中的步骤操作。
http://www.marinamele.com/taskbuster-django-tutorial/install-and-configure-posgresql-for-django
settings.py(加入数据库设置如下)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': get_env_variable('DATABASE_NAME'),
'USER': get_env_variable('DATABASE_USER'),
'PASSWORD': get_env_variable('DATABASE_PASSWORD'),
'HOST': '',
'PORT': '',
}
}
def get_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
error_msg = "Set the %s environment variable" % var_name
raise ImproperlyConfigured(error_msg)
在Django中壳
>>>from trydjango import settings
>>>settings.DATABASES
{'default': {'ENGINE': 'django.db.backends.dummy', 'AUTOCOMMIT': True,
'ATOMIC_REQUESTS': False, 'NAME': '', 'CONN_MAX_AGE': 0, 'TIME_ZONE': None,
'PORT': '', 'HOST': '', 'USER': '',
'TEST': {'COLLATION': None, 'CHARSET': None, 'NAME': None, 'MIRROR': None},
'PASSWORD': '', 'OPTIONS': {}}}
错误:
django.core.exceptions.ImproperlyConfigured:settings.DATABASES is improperly configured.
Please supply the ENGINE value. Check settings documentation
for more details.
请帮我解决这个问题。
答
有在settings.DATABASES配置错误
settings.py(该数据库目前的设置)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
,并有与$ DATABASE_URL 数据库配置一些错误已被修正为
#Update database configuration with $DATABASE_URL.
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
使用
然后施加迁移3210python manage.py makemigrations
python manage.py migrate
解决了这个问题。
现在在Django数据库配置外壳
>>> from trydjango.settings import DATABASES
>>> DATABASES
{'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2',
'AUTOCOMMIT': True, 'ATOMIC_REQUESTS': False, 'NAME': 'myproject',
'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'OPTIONS': {}, 'HOST': 'localhost',
'USER': 'myprojectuser', 'TEST': {'COLLATION': None, 'CHARSET': None,
'NAME': None, 'MIRROR': None}, 'PASSWORD': 'password', 'PORT': ''}}
完成
将您从环境变量名/用户/密码。但是你有没有在任何地方设置这些环境变量? –
是的!我已经设定。 – Reck
我的问题已解决。谢谢!! – Reck