0

我正在使用 Postgres 的 unaccent 扩展并遵循所有文档以使其工作(通过 CREATE EXTENSION 直接安装扩展并将 django.contrib.postgres 放在 django 设置中的 INSTALLED_APPS 中)。

在本地环境中,它运行良好,但是在构建应用程序并将其部署到 Heroku 之后,它看起来好像没有安装 django.contrib.postgres。因此,当我尝试使用使用 unaccent 查询的应用程序的功能时,当您在 INSTALLED_APPS 中没有 django.contrib.postgres 时,会出现“不支持的 CharField 查找 'unaccent'”。

在本地环境中的 python shell 打印 settings.INSTALLED_APPS 显示 django.contrib.postgres 在那里,但在 Heroku 上运行它显示它丢失了。heroku/python 的构建包不支持它还是我缺少一些配置?

我尝试为早期版本的 Django 安装 django-contrib-postgres 反向端口(将其放在 requirements.txt 中),但无济于事。Python 版本是 3.6.7,Django 是 2.1.2。使用带有 UnaccentExtension 的迁移创建扩展也不会改变任何东西,我确信这不是 Postgres 问题,因为使用 unaccent(columnname) 直接在数据库上查询可以按预期工作。

提前致谢。

编辑:Azure DevOps Pipelines 和 requirements.txt 的 YAML 定义

要求.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'


4

0 回答 0