如何在EC2 Elastic Beanstalk上为Django设置settings.py
文件以使用Postgres RDS?
These docs仅为MySQL提供settings.py
。
答案 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: []