Amazon ec2 用Postgres在弹性豆茎上设置Django
如何在EC2 Elastic Beanstalk上为Django设置settings.py文件以使用Postgres RDSAmazon ec2 用Postgres在弹性豆茎上设置Django,amazon-ec2,amazon-rds,django-settings,amazon-elastic-beanstalk,Amazon Ec2,Amazon Rds,Django Settings,Amazon Elastic Beanstalk,如何在EC2 Elastic Beanstalk上为Django设置settings.py文件以使用Postgres RDS 仅为MySQL提供settings.py。您可能只需要更改数据库对象中的引擎设置。您需要将psycopg2安装到您的环境中。这是我的。只需填写数据库的信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_
仅为MySQL提供settings.py。您可能只需要更改数据库对象中的引擎设置。您需要将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.
}
}
使用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'],
}
}
您需要将psycopg2包含在使用pip freeze>requirements.txt创建的pip requirements.txt文件中,还可能安装Postgres依赖项postgresql devel,方法是在.ebextensions/package.config文件中包含以下内容。文件名不必是packages.config,这正是我使用的:
packages:
yum:
postgresql-devel: []
我不太确定我是否遵循名称、主机等的值。我认为它们不应该是空的,而应该像MySQL的设置一样?:“主机”:os.environ['RDS_HOSTNAME']这是一个不错的开始:我发现一个错误,即yum不包含postgresql-devel!!我也有这个问题。我认为2014-09 Linux版本存在问题。选择2014-03,它应该可以工作。使用2014-09尝试postgresql92-devel或postgresql93-devel