使用Postgres在Elastic Beanstalk上设置Django

时间:2014-10-16 17:09:23

标签: amazon-ec2 amazon-rds django-settings elastic-beanstalk

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

These docs仅为MySQL提供settings.py

2 个答案:

答案 0 :(得分:0)

您可能只需要更改数据库对象中的引擎设置。您需要在您的环境中安装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.
    }
}

答案 1 :(得分:0)

使用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文件(使用pip freeze > requirements.txt制作)中包含psycopg2,并且还可能通过在.ebextensions / package中包含以下内容来安装Postgres依赖项postgresql-devel。 .config文件(文件名不必是packages.config,这就是我使用的):

packages:
  yum:
    postgresql-devel: []