我正在使用AWS EB部署GeoDjango应用程序。我还设置了一个PostgreSQL数据库,并在EC2实例上安装了所有要求。
在我的settings.py
文件中:
if 'RDS_DB_NAME' in os.environ:
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'],
}
}
如果这样设置,我的eb配置文件将出现以下错误:
AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
我的配置文件如下:
container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput"
leader_only: true
如果我将settings.py
文件设置为此:
if 'RDS_DB_NAME' in os.environ:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'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'],
}
}
不会有任何错误,但是数据库不会在RDS上迁移,因为我无法在Django应用程序上查询数据。我该怎么解决?