修复损坏的 PostGIS 光栅安装
从 PostGIS 3.0 开始,PostGIS 光栅支持不再是 postgis
扩展的一部分,而是分拆为一个名为 postgis_raster
的 PostGIS 扩展。
从 2.* 升级光栅至 3.* 介绍了从 PostGIS 2+ 升级到 PostGIS 3+ 的正确方法。
不幸的是,许多人在支票中看到“UNPACKAGED”通知时会惊慌失措
SELECT postgis_full_extension()
尝试级联删除栅格类型。删除栅格类型不会删除所有栅格函数,但会销毁所有栅格数据(如果有)。不要这样做。但如果你碰巧这样做了,这个解决方案适合你。
破坏栅格安装后的唯一解决方案是删除 PostGIS 栅格功能的剩余部分。在这一点上,你可以使用 CREATE EXENSION postgis_raster
重新安装,或者如果你不需要栅格支持,也可以不用理会。
你怎么知道你的栅格安装已损坏?
如果你运行
ALTER EXTENSION postgis UPDATE;
-- yes run it twice
SELECT postgis_extensions_upgrade();
SELECT postgis_extensions_upgrade();
然后检查
SELECT postgis_full_version();
你仍然会看到消息 RASTER (raster lib from "2.5.3 r17699" need upgrade) [UNPACKAGED!]
你的栅格功能已损坏得很严重,无法升级。
在做任何事情之前,首先确认你没有栅格表。以下查询应该出错或返回 0
SELECT count(1) FROM raster_columns;
要解决此问题,请运行脚本 uninstall_rtpostgis.sql。它应该删除旧版本的 PostGIS 栅格函数,因为旧版本的函数集通常是 2.5 的子集。
现在要确认它已全部消失,请再次运行以下内容。
SELECT postgis_full_version();
你现在应该看不到任何提及RASTER 或 GDAL 的内容。