PostgreSQL升级问题$ libdir / postgis-1.5 $ libdir / plr

时间:2013-04-27 17:06:40

标签: postgresql osx-mountain-lion postgis postgresql-9.1

我正在尝试使用William Kingesbury提供的二进制文件在Mac OS X上从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.sopostgis-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,但是没有办法从旧安装中删除它吗?

2 个答案:

答案 0 :(得分:1)

  

我可以想象如何在postgresql9.2下安装postgis-1.5

这是正确的做法。

  

但应该有办法从旧安装中删除它吗?

好吧,您可以停用9.2,重新激活(并启动)9.1,根据需要修改数据,重新转储数据,停用9.1,重新启动并启动9.2,然后重新导入数据......

您也可以通过手动编辑数据库转储来删除引用。

但最后,为9.2安装postgis-1.5可能更容易也更短。

答案 1 :(得分:1)

好的 - 问题已经在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再次运行顺利。