【发布时间】:2014-12-12 03:45:33
【问题描述】:
我应该如何在 EC2 Elastic Beanstalk 上为 Django 设置我的 settings.py 文件以使用 Postgres RDS?
These docs 只为 MySQL 提供 settings.py。
【问题讨论】:
标签: amazon-ec2 amazon-rds django-settings amazon-elastic-beanstalk
我应该如何在 EC2 Elastic Beanstalk 上为 Django 设置我的 settings.py 文件以使用 Postgres RDS?
These docs 只为 MySQL 提供 settings.py。
【问题讨论】:
标签: amazon-ec2 amazon-rds django-settings amazon-elastic-beanstalk
您可能只需要更改数据库对象中的引擎设置。您需要将 psycopg2 安装到您的环境中。这是我的样子。只需填写您的数据库信息。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
【讨论】:
'HOST': os.environ['RDS_HOSTNAME']
使用 psycopg2,并使用环境变量(在 Elastic Beanstalk 中为您提供):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'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'],
}
}
您需要在 pip requirements.txt 文件中包含 psycopg2(使用 pip freeze > requirements.txt 创建),并且可能还需要通过在 .ebextensions/package.config 文件中包含以下内容来安装 Postgres 依赖项 postgresql-devel(文件名不必是packages.config,这正是我使用的):
packages:
yum:
postgresql-devel: []
【讨论】: