【问题标题】:Django Postgresql Configuration ERROR : ImproperlyConfigured: settings.DATABASESDjango Postgresql 配置错误:配置不当:settings.DATABASES
【发布时间】:2016-06-14 14:30:17
【问题描述】:

Django 新手!!

在从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.

请帮我解决这个问题。

【问题讨论】:

  • 您从环境变量中获取名称/用户/密码。但是您是否真的在任何地方设置了这些环境变量?
  • 是的!我已经设置好了。
  • 我的问题已经解决了。谢谢!!

标签: python django postgresql sqlite


【解决方案1】:

由于代表而回答而不是评论。

您的 settings.py 显示:'ENGINE': 'django.db.backends.postgresql_psycopg2' 但是你的 shell 输出显示:'ENGINE': 'django.db.backends.dummy'

您确定所有配置都正确吗?

【讨论】:

  • 这是由于settings.DATABASES配置不正确
【解决方案2】:

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)

然后使用

应用迁移
python manage.py makemigrations
python manage.py migrate

解决了这个问题。

现在是 Django shell 中的 DATABASE 配置

>>> 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': ''}}

完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多