django.contrib.postgres отсутствует / не устанавливается на Heroku Django - PullRequest
0 голосов
/ 10 мая 2019

Я использую расширение unaccent для Postgres и следовал всем документам, чтобы заставить его работать (установил расширение напрямую через CREATE EXTENSION и поместил django.contrib.postgres в INSTALLED_APPS в настройках django).

В локальной среде оно работает отлично, однако после сборки и развертывания приложения в Heroku, похоже, что оно не устанавливает django.contrib.postgres. Поэтому, когда я пытаюсь использовать функциональность моего приложения, которое запрашивает unaccent, я получаю «Неподдерживаемый поиск« unaccent »для CharField», который происходит, когда у вас нет django.contrib.postgres в INSTALLED_APPS.

В настройках печати оболочки python. INSTALLED_APPS в локальной среде показывает, что django.contrib.postgres есть, но запуск его на Heroku показывает, что он отсутствует. Это не поддерживается buildpack для heroku / python или что-то или я пропустил некоторые конфигурации?

Я попытался pip установить бэкпорт django-contrib-postgres для более ранних версий Django (поместил его в файл needs.txt), но безрезультатно. Версия Python - 3.6.7, а Django - 2.1.2. Создание расширения с использованием миграций с UnaccentExtension также ничего не меняет, и я уверен, что это не проблема Postgres, поскольку запросы непосредственно в базу данных с использованием unaccent (columnname) работают, как и ожидалось.

Заранее спасибо.

Редактировать: определение YAML для конвейеров DevOps Azure и их требования. Txt

requirements.txt

Django==2.1.2
django-cors-middleware==1.3.1
django-heroku==0.3.1
django-oauth-toolkit==1.2.0
djangorestframework==3.9.0
djangorestframework-camel-case==0.2.0
django-contrib-postgres==0.0.1
facepy==1.0.9
factory_boy==2.11.1
flake8==3.5.0
gunicorn==19.8.1
psycopg2-binary==2.7.5
pylint==2.1.1
pytest==3.9.1
pytest-cov==2.6.0
pytest-django==3.4.3
python-dateutil==2.7.5
raven==6.9.0
freezegun==0.3.11
mailchimp3==3.0.4

Сложение

pool:

  name: Hosted VS2017

steps:

- task: UsePythonVersion@0

  displayName: 'Use Python 3.6'

  inputs:

    versionSpec: 3.6



- script: 'pip install -r requirements.txt'

  workingDirectory: 'back-end'

  displayName: 'Restore dependencies'



- script: 'python manage.py collectstatic'

  workingDirectory: 'back-end'

  displayName: 'Export static files'



- script: 'flake8 .'

  workingDirectory: 'back-end'

  displayName: 'Style analysis'



- script: 'pytest --junitxml=junit.xml --cov --cov-report=xml --cov-report=html'

  workingDirectory: 'back-end'

  displayName: 'Run tests'



- task: PublishTestResults@2

  displayName: 'Publish test results'

  inputs:

    testResultsFiles: 'back-end/junit.xml'



- task: PublishCodeCoverageResults@1

  displayName: 'Publish test coverage'

  inputs:

    codeCoverageTool: Coverage

    summaryFileLocation: '$(System.DefaultWorkingDirectory)/back-end/coverage.xml'

    reportDirectory: '$(System.DefaultWorkingDirectory)/back-end/htmlcov/'



- task: PublishBuildArtifacts@1

  displayName: 'publish artifact'

  inputs:

    PathtoPublish: 'back-end'

    ArtifactName: BackendArtifact




Релиз (ключ и имена скрыты *)

steps:

- task: boostingmy.vsts-heroku-tasks.pushu-to-heroku.PushToHeroku@1

  displayName: 'Publish on Heroku'

  inputs:

    ApiKey: '***'

    AppName: '***'

    PushRoot: '$(System.DefaultWorkingDirectory)/****-Back-end-CI/BackendArtifact'


...