这是我的情况:
ALTER EXTENSION postgis UPGRADE TO '2.2.0'; )。 这似乎已经工作( select postgis_full_version()显示POSTGIS="2.2.0 r14208" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.1, 04 March 2015" GDAL="GDAL 2.0.1, released 2015/09/15" LIBXML="2.9.3" LIBJSON="0.11" RASTER在安装了postgis的两个数据库上),尽pipe旧的postgis-2.1.so留在了lib目录中。 pg_upgrade 。 pg_upgrade失败: 您的安装引用了新安装中缺less的可加载库。 您可以将这些库添加到新安装中,或从旧安装中删除使用它们的function。 问题库列表位于文件中:loadable_libraries.txt
loadable_libraries.txt包含:
无法加载库“$ libdir / rtpostgis-2.1”错误:无法访问文件“$ libdir / rtpostgis-2.1”:没有这样的文件或目录
无法加载库“$ libdir / postgis-2.1”错误:无法访问文件“$ libdir / postgis-2.1”:没有这样的文件或目录
我不确定为什么新版本的Postgresql需要旧版本的Postgis …不应该删除它? 我从9.4的lib目录中移动了旧的postgis-2.1.so和rtpostgis-2.1.so文件,但是错误依然存在。
我也试着编译Postgis 2.1.6对Postgresql 9.5beta2,但编译失败,出现以下错误:
lwgeom_accum.c: In function 'pgis_geometry_accum_transfn': lwgeom_accum.c:109:46: error: 'AggState {aka struct AggState}' has no member named 'aggcontext' aggcontext = ((AggState *) fcinfo->context)->aggcontext;
我也尝试从9.4目录拷贝2.1库到9.5目录,但是因为Postgresql版本不匹配而失败了。
转储和重新加载所有数据库是可能的,但只是作为最后的手段,因为数据库是巨大的。 如果答案是“因为9.5还在testing阶段”,我可以接受,虽然他们的beta在过去似乎相当稳定。
我设法通过以下步骤解决我的问题:
我不认为这是一个理想的情况,但至less现在运行。