DATABASES 配置不正确 rds postgres django

Posted

技术标签:

【中文标题】DATABASES 配置不正确 rds postgres django【英文标题】:DATABASES is improperly configured rds postgres django 【发布时间】:2019-09-26 02:59:56 【问题描述】:

我在 elasticbeanstalk 上部署了我的 django 应用,但是当我连接 rds 时显示此错误:

ImproperlyConfigured("settings.DATABASES 配置不正确。" django.core.exceptions.ImproperlyConfigured:settings.DATABASES 配置不正确。请提供 ENGINE 值。有关更多详细信息,请查看设置文档。 .ebextensions/django.config 中的 container_command 01_migrate 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

这是我的设置:

if 'aam9tdmg0cwj1k.cugucrimdqma.ap-south-1.rds.amazonaws.com' in os.environ:
DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ['aam9tdmg0cwj1k'],
        'USER': os.environ['liveimage'],
        'PASSWORD': os.environ['liveimage123'],
        'HOST': os.environ['aam9tdmg0cwj1k.cugucrimdqma.ap-south-1.rds.amazonaws.com'],
        'PORT': os.environ['5432']
    

没有缩进错误。

【问题讨论】:

我想你误解了什么是字典。这些值都不是os.environ 字典中的键。 【参考方案1】:

首先在环境的关键 HOST 中设置主机的值,然后你的第一行应该是这样的:

if os.environ.get('HOST',None) == 'aam9tdmg0cwj1k.cugucrimdqma.ap-south-1.rds.amazonaws.com':

如果您不想设置环境变量,请提供默认值,例如:

import environ
env = environ.Env()
DATABASES = 
    'default': 
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': env('DB_NAME', default='aam9tdmg0cwj1k'),
    'USER': env('DB_USER', default='liveimage'),
    'PASSWORD': env('DB_PASSWORD', default='liveimage123'),
    'HOST': env('DB_HOST', default='aam9tdmg0cwj1k.cugucrimdqma.ap-south-1.rds.amazonaws.com'),
    'PORT': env('DB_PORT', default='5432')

【讨论】:

以上是关于DATABASES 配置不正确 rds postgres django的主要内容,如果未能解决你的问题,请参考以下文章

安装 Graphite 时出现 Django 错误 - settings.DATABASES 配置不正确。请提供 ENGINE 值

Heroku 上带有 Postgresql 的 Django - settings.DATABASES 配置不正确。请提供名称值

如何配置 settings.DATABASES?

PostGIS 版本阻止了 Amazon RDS 上的 PostgreSQL 升级

云小课|教你如何使用RDS for PostgreSQL插件

通过 Terraform Null 资源配置 PostgreSQL 架构的问题