空间数据库升级的风险,不只来自安装失败。服务即使启动,地址匹配、拓扑或栅格流程也可能在后续运行才暴露行为变化。PostGIS 3.7 的预发布版本要求 GIS 团队分别盘点核心扩展、Tiger Geocoder、地址标准化器和底层依赖,不能只看一个版本号。

资料依据是 PostGIS 开发团队发布的 3.7.0rc2、Tiger Geocoder 2025.2 与发布说明。3.7.0rc2 是重大版本候选发布,包含自 3.6.4 以来的修复和新功能;它要求 PostgreSQL 14 至 19beta3、GEOS 3.10 以上、Proj 6.1 以上和 libgmp。

拆分改变部署清单

官方说明,PostGIS 3.6 是最后一个包含 Tiger Geocoder 的系列,3.7 不再随核心发布。Tiger Geocoder 2025.2 改为独立扩展,要求 PostgreSQL 16 以上,并可与受支持的 PostGIS 版本配合。它有独立仓库,版本号按发布时使用的 Census TIGER 数据年份命名。

这不是包名调整。依赖地址地理编码的系统应明确谁安装独立扩展、扩展文件从哪里来、数据库内的扩展版本是什么,以及回滚时如何恢复。常规升级动作是 ALTER EXTENSION postgis_tiger_geocoder UPDATE;没有更新路径或使用开发版本时,官方给出先更新到 ANY 再更新的处理方式。执行前必须在副本库验证。

五项可核查事实

  • PostGIS 3.7.0rc2 是重大版本候选发布,包含自 3.6.4 以来的修复和新功能。
  • rc2 要求 PostgreSQL 14 至 19beta3、GEOS 3.10 以上、Proj 6.1 以上和 libgmp。
  • 完整功能建议 GEOS 3.15 以上,SFCGAL 功能需 SFCGAL 2.3.0 以上,postgis_raster 需 GDAL 3 以上。
  • PostGIS 3.6 是最后一个包含 Tiger Geocoder 的系列,3.7 不再随核心发布。
  • Tiger Geocoder 2025.2 是独立扩展,要求 PostgreSQL 16 以上,版本按当年 Census TIGER 数据命名。

可回滚升级检查

  1. 记录每个数据库的 PostgreSQL、PostGIS、GEOS、Proj、GDAL、SFCGAL 与扩展版本,并标明是否使用 raster、topology、geocoder 或 address standardizer。
  2. 在生产数据副本演练,保留备份、扩展列表、空间索引状态和关键 SQL 结果快照。
  3. 将 Tiger Geocoder 和 address standardizer 作为独立依赖安装与升级,检查自动化脚本。
  4. 对拓扑、地理编码、栅格和常用空间查询执行回归测试,记录数据来源、数据口径、执行计划和结果差异。
  5. 在人工复核确认关键业务结果后才生产切换;不兼容时按预演步骤回滚。

结论

PostGIS 3.7 的重点是扩展生命周期和依赖边界更明确。GIS 平台应交付可复跑升级清单、测试证据和回滚方案,而不是一次安装成功。

资料来源