使用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':''
}
}
答案 0 :(得分:1)
我也使用awscli,我的数据库设置看起来就像你的,它们工作正常。您是否尝试创建新的EB实例并查看其是否有效?