You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署Django含地理字段模型时,迁移报错'geo_db_type'属性缺失

解决Heroku部署Django几何字段迁移报错问题

排查数据库引擎配置一致性

  • 确认settings.py中数据库引擎在Heroku环境下实际生效:如果使用dj-database-url,数据库URL可能会覆盖本地设置的引擎,需强制指定PostGIS引擎:
    import dj_database_url
    DATABASES = {
        'default': dj_database_url.config(conn_max_age=600)
    }
    # 强制替换为PostGIS引擎
    DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.postgis'
    

调整构建包顺序

  • Heroku构建包顺序必须将heroku-geo-buildpack放在heroku/python之前,否则PostGIS依赖无法被Python环境正确识别。执行以下命令修正:
    heroku buildpacks:clear
    heroku buildpacks:add https://github.com/heroku/heroku-geo-buildpack.git
    heroku buildpacks:add heroku/python
    

验证PostGIS扩展状态

  • 登录Heroku PostgreSQL控制台检查扩展是否存在:
    heroku pg:psql
    
    执行SQL命令:
    SELECT * FROM pg_extension WHERE extname = 'postgis';
    
    若无结果,重新创建扩展:
    CREATE EXTENSION postgis;
    

同步Django版本

  • 确保Heroku与本地使用的Django版本完全一致,Python版本差异(3.10 vs 3.9)可能引发Geo模块兼容性问题。本地生成锁定版本的requirements.txt:
    pip freeze > requirements.txt
    

强制重新部署

  • 缓存可能导致配置不生效,提交空更新触发重新部署:
    git commit --allow-empty -m "Force redeploy"
    git push heroku main
    

内容的提问来源于stack exchange,提问作者Taylor Higgins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:48:23