Amazon ec2 用Postgres在弹性豆茎上设置Django

Amazon 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_

如何在EC2 Elastic Beanstalk上为Django设置settings.py文件以使用Postgres RDS


仅为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