Я использую расширение 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'