Elastic Beanstalk没有看到DATABASES设置中的更改 - Django

时间:2016-12-19 21:41:33

标签: python django postgresql amazon-web-services elastic-beanstalk

使用Postgres在EB上部署Django时遇到了奇怪的问题。

上下文:使用postgresql 9.5在Elastic Beanstalk上部署Django应用程序。我尝试了两台具有相同结果的独立Windows 10机器。 Python 3.5和Django 1.10.4。

问题:使用RDS环境变量连接到数据库时,我不小心在settings.py中查找“RDS_USER”而不是“RDS_USERNAME”。这自然会引发“RDS_USER”的KeyError。

但是,如果我将其更改为正确值,请提交更改并重新部署,eb不会接收更改。

尝试运行迁移时,我仍然得到“RDS_USER”的相同KeyError。

我可以在修改settings.py for postgres并添加一些命令(venv,migrations)/ packages(git,postgresql95-devel)之后复制它。

还有其他人经历过这个吗?

如果我创建一个新实例并最初使用正确的变量名称进行部署,则可以正常工作。

settings.py:

if 'RDS_DB_NAME' in os.environ:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': os.environ['RDS_DB_NAME'],
            'USER': os.environ['RDS_USERNAME'],
            'PASSWORD' : os.environ['RDS_PASSWORD'],
            'HOST': os.environ['RDS_HOSTNAME'],
            'PORT':os.environ['RDS_PORT']
        }
    }
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'name',
            'USER':'user',
            'PASSWORD':'password',
            'HOST':'localhost',
            'PORT':''
        }
    }

1 个答案:

答案 0 :(得分:1)

我也使用awscli,我的数据库设置看起来就像你的,它们工作正常。您是否尝试创建新的EB实例并查看其是否有效?