我正在尝试使用William Kingesbury提供的二进制文件在Mac上从PostgreSQL 9.1升级到PostgreSQL 9.2,几个小时以来一直无法隔离可加载的库的一个关键问题。
首先,我得到以下错误:
Could not load library "$libdir/postgis-1.5"
ERROR: could not access file "$libdir/postgis-1.5": No such file or directory
Could not load library "$libdir/plr"
ERROR: could not access file "$libdir/plr": No such file or directory并最终发现这些扩展名存储在/usr/local/pgsql-9.1/lib/目录中。
我在9.1中检查了我的所有数据库,但它们中没有一个在psql终端窗口中通过\dx+实际使用这些扩展。
如何从旧的9.1数据库中删除对这些库的引用?我从扩展文件夹(*.plr文件)和/usr/local/pgsql-9.1/lib/中手动删除了它们,但在升级过程中,我仍然收到上面提到的相同错误。
我还尝试将名为plr.so和postgis-1.5.so的库文件复制到新的/usr/local/pgsql-9.2/lib/目录中,但是这对结果没有明显的影响,只是给出了以下错误:
Could not load library "$libdir/postgis-1.5"
ERROR: incompatible library "/usr/local/pgsql-9.2/lib/postgis-1.5.so": version mismatch
DETAIL: Server is version 9.2, library is version 9.1.我大概可以想出如何在PostgreSQL 9.2下安装PostGIS-1.5,但是没有办法从旧安装中删除它吗?
发布于 2013-04-28 03:51:21
我大概可以想出如何在postgresql9.2下安装postgis-1.5。
这将是正确的做法。
但是应该有一种方法可以从旧安装中删除它?
那么,您可以停用9.2,重新激活(并启动) 9.1,根据需要修改数据,重新转储数据,停用9.1,重新激活并启动9.2,然后重新导入数据……
您还可以通过手动编辑数据库转储来删除引用来进行管理。
但最终,只安装9.2的postgis-1.5可能会更容易、更短。
发布于 2013-04-28 19:31:12
好的-在William Kyngesbury和Denis的帮助下这个问题已经解决了-谢谢!
有一个旧PostGIS版本的卸载文件(.sql),默认情况下位于以下目录:
pgsql-9.1/share/contrib/postgis-2.0/uninstall_legacy.sql正如Denis之前所建议的,我还重新激活了我的PostgreSQL的9.1实例:
sudo ln -sfh pgsql-9.1 /usr/local/pgsql对于下一步,我在我的每个数据库中运行了uninstall_legacy.sql脚本。事实上,只有一个数据库中的几个函数被删除了,因为我不知道如何删除PL/R,但同时又怀疑我在这个数据库中创建了扩展,所以我在SQL转储之后删除了整个数据库。然后我再次激活了我的PostgreSQL 9.2实例并启动了它。
现在,pg_upgrade进程运行无误,PostgreSQL和PostGIS再次顺利运行。
https://stackoverflow.com/questions/16254778
复制相似问题