首页 文章

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

提问于
浏览
3

我正在尝试使用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 回答

  • 1

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

    那是正确的做法 .

    但应该有一种方法将其从旧安装中删除?

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

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

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

  • 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再次运行顺利 .

相关问题