Как автоматически запустить команду установки расширения на Heroku при подготовке базы данных с использованием конвейеров? - PullRequest
0 голосов
/ 19 ноября 2018

Я использую функцию Heroku Pipelines, чтобы автоматически создавать приложение обзора, когда я создаю новый PR в github. Это предоставит вам новую БД и перенесет всю вашу схему базы данных. При переносе этой схемы я получаю эту ошибку:

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

Я хочу использовать PostGIS, что означает, что мне нужно запустить CREATE EXTENSION postgis; на БД после того, как он автоматически подготовлен. Я догадываюсь, что я получаю эту ошибку, потому что к моменту запуска python manage.py migrate расширение еще не установлено. Как бы я запустил это в автоматическом режиме при создании моего приложения для обзора?

1 Ответ

0 голосов
/ 19 ноября 2018

Это немного неудобно, так как приложения для просмотра еще не поддерживают его изначально, но вы могли бы научить свой скрипт postdeploy новому трюку.Примерно так:

"postdeploy": "echo 'CREATE EXTENSION, ЕСЛИ НЕ СУЩЕСТВУЕТ postgis;'| psql $ DATABASE_URL && - запустить ваши миграции здесь - "

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

...