Почему я не могу установить движок базы данных GeoDjango на 'django.contrib.gis.db.backends.postgis' на heroku?

У меня одна и та же проблема уже несколько дней, и, похоже, что независимо от того, что я делаю, я не могу установить движок базы данных на 'django.contrib.gis.db.backends.postgis' на heroku. Эта проблема настолько затянула меня, что я наконец-то сделал свой первый пост на Stack Overflow.

Я вижу, что движок работает 'django.db.backends.postgresql_psycopg2' когда я проверяю настройки базы данных в heroku:

% heroku run bash
~ $ python manage.py shell
>>> from django.conf import settings
>>> settings.DATABASES
{'default': {'NAME': [name], 'USER': [user], 'PASSWORD': [password], 
'HOST': [host], 'PORT': 5432, 'CONN_MAX_AGE': 600, 'OPTIONS': {'sslmode': 'require'}, 
'ENGINE': 'django.db.backends.postgresql_psycopg2', 
'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'TIME_ZONE': None, 
'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}}

Я пришел к выводу, что проблема связана с тем, что я не понимаю, как heroku использует файл django settings.py для настройки базы данных . Например, я думаю, не делаю ли я все в неправильном порядке. Первоначально я настроил базу данных heroku с помощью следующих команд, а затем после этого разместил свой проект geodjango на Heroku.

% heroku addons:create heroku-postgresql:hobby-dev
% heroku pg:psql
app::DATABASE=> create extension postgis;

Я также пробовал полностью удалить базу данных, а затем перенести свой код на Heroku, потому что я думал, что heroku автоматически создаст базу данных после чтения файла settings.py, но этого не произошло.

Дополнительная информация:

Я считаю, что мои heroku builpacks настроены правильно и не думаю, что проблема в этом:

1. https://github.com/heroku/heroku-geo-buildpack.git
2. heroku/python

Переменная DATABASES в моем settings.py файле следует рекомендациям многих тем Stack Overflow, уже написанных по этой проблеме, как показано ниже. Я установил с помощью pip dj_database_url и добавил его в мой requirements.txt. Мне кажется, я вспоминаю, что где-то читал, что django создает базу данных с первого упоминания переменной DATABASES, поэтому он не будет читать последнюю строку, где я переустановил движок на 'django.contrib.gis.db.backends.postgis'. Может быть, в этом проблема?

DATABASES = {}

import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)
DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.postgis'

Мой самый насущный вопрос: как установить движок базы данных в heroku 'django.contrib.gis.db.backends.postgis'? Я также хочу понять, как heroku использует файл django settings.py для настройки приложения?

Большое спасибо!

Вернуться на верх