Расширение Heroku Django post-gis: Ошибка "нет атрибута 'geo_db_type'" при миграции новой модели, содержащей геоэлементы
Я столкнулся с этой проблемой при развертывании моего приложения django на heroku. Оно прекрасно собиралось и разворачивалось до того, как я отредактировал свою django модель, включив в нее поле геометрии:
geom = models.PointField(verbose_name='geo',srid = 4326)
Теперь сборка проходит успешно, но затем происходит сбой на этом коде миграции в Procfile
`release: python manage.py migrate`
Файл миграции успешно находится в моей git-репо. И локально я смог успешно запустить python manage.py migrate
. Когда я перехожу к миграции на heroku, я получаю следующую ошибку.
AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'
Похоже, что здесь не хватает чего-то "связанного с гео", но я не могу понять чего, поскольку я создал расширение postgis для базы данных postgres в heroku и у меня есть heroku-geo-buildpack
вместе с heroku/python
buildpack.
На heroku у меня python 3.10, а локально это Python 3.9.13.
В моем файле settings.py у меня есть:
'ENGINE':'django.contrib.gis.db.backends.postgis',
в DATABASES
и 'django.contrib.gis',
в INSTALLED_APPS
Вот расширение post-gis на базе данных postgres в heroku:
И два билдпака, установленных в heroku:
Спасибо за любую помощь или руководство!
Хорошо - оказалось, что у меня была закомментирована важная пара строк в файле settings.py. Размещаю ответ здесь, вдруг это кому-нибудь поможет! Насколько я понимаю, эта часть помогает убедиться, что движок postgis используется на сервере heroku. Но, пожалуйста, если кто-то знает больше о том, почему это помогло решить мою проблему, прокомментируйте и напишите, я весь внимание! Спасибо!
import dj_database_url
DATABASES['default'] = dj_database_url.config()
DATABASES['default']['ENGINE'] =
'django.contrib.gis.db.backends.postgis'
DATABASES['default']['NAME'] = os.environ['NAME']