使用管道配置数据库时,如何在 Heroku 上自动 运行 扩展安装命令?

How do I auto run extension install command on Heroku when provisioning DB using pipelines?

每当我在 github 中创建新 PR 时,我都会使用 Heroku Pipelines 功能自动创建评论应用程序。这将为您提供一个新的数据库并迁移您的所有数据库架构。迁移此模式时,我收到此错误:

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

我想使用 PostGIS,这意味着我需要 运行 CREATE EXTENSION postgis; 在自动配置后在数据库上。我的直觉是,我收到此错误是因为在 运行s python manage.py migrate 时尚未安装扩展。在构建我的评论应用程序时,我如何 运行 以自动化方式执行此操作?

这有点麻烦,因为评论应用程序本身还不支持它,但您可以教 postdeploy 脚本一个新技巧。像这样:

"postdeploy": "echo 'CREATE EXTENSION IF NOT EXISTS postgis;' | psql $DATABASE_URL && --run your migrations here--"

这将在 运行 您的迁移之前创建扩展,这应该可以解决您遇到的问题。