Объект GeoDjango heroku 'DatabaseOperations' не имеет атрибута 'spatial_aggregate_name'

Я пытаюсь развернуть свое приложение на Heroku, которое работает локально, но выдает эту ошибку при развертывании на heroku:

AttributeError : 'DatabaseOperations' object has no attribute 'spatial_aggregate_name'

Для контекста, вызов api, который вызывает ошибку, пытается вернуть все адреса из таблицы, которые находятся в определенной границе.

мои настройки DATABASE в settings.py:


INSTALLED_APPS = [
    'map.apps.MapConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.postgres',
    'rest_framework',
    'django.contrib.gis',
    'coreapi',
    'listings',
    'drf_yasg',
]

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'neighborhoods',
        'USER': 'django',
        'PASSWORD': db_pass,
        'HOST':'bonfiredb.cyuiw6tqzaag.us-west-1.rds.amazonaws.com',
        'PORT':'5432'
    }
}

# Heroku: Update database configurations from $DATABASE_URL.
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)

# Activate Django-Heroku.
django_heroku.settings(locals(), staticfiles=False)

Я использую билдпак heroku goe buildpack.

Я просто не могу понять, почему он работает локально, но не работает на heroku.

Вот моя трассировка:

Я просто не могу определить, что меняется в настройках heroku и почему он не находит необходимые атрибуты, такие как 'spacial_aggregate_name'. Любая помощь будет высоко оценена :)

PostGIS по умолчанию не включен в базах данных Heroku Postgres. Вам необходимо включить его, выполнив

CREATE EXTENSION postgis;

на вашей базе данных, прежде чем вы сможете ее использовать.

Для более подробной информации смотрите документацию.

Возможно, это скорее патч, чем решение, но я могу заставить его работать, если внесу следующие изменения в settings.py. Закомментируйте следующие настройки:

# Heroku: Update database configurations from $DATABASE_URL.
#import dj_database_url
# db_from_env = dj_database_url.config(conn_max_age=500, 
#                                      engine = 'django.contrib.gis.db.backends.postgis',
#                                     )
# DATABASES['default'].update(db_from_env)    

# Activate Django-Heroku.
# django_heroku.settings(locals(), staticfiles=False)

похоже, что эти строки изменяли настройки в heroku для использования другого экземпляра postgresql, настроенного через heroku-postgres вместо базы данных, которую я уже настроил должным образом.

Надеюсь, в этих строках нет необходимости.

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