Postgresql:无法访问文件 « $libdir/postgis-2.1 » 没有这样的文件或目录

Postgresql: Can't access to file « $libdir/postgis-2.1 » no such file or directory

我想这是一个已知问题,但由于我使用了一个删除了我的 postgresql-9.4-postgis-2.1 的脚本,我现在无法在 Debian 下摆脱这个 SQL 错误。

Can't access to file « $libdir/postgis-2.1 » no such file or directory

我做了以下事情:

- Remove new unwanted postgresql-9.5-postgis-2.2 package installed
- Reinstalling postgresql-9.4-postgis-2.1, postgresql-9.4-postgis-scripts and postgis
- Using SQL: ALTER EXTENSION postgis UPDATE TO '2.1.4' --under postgres user
- Using SQL: ALTER EXTENSION postgis_topology UPDATE TO '2.1.4' --under postgres user

SELECT * FROM pg_available_extensions;returns

[...]
postgis 2.1.4   2.1.4   PostGIS geometry, geography, and raster spatial types and functions.

但是在访问使用几何类型的表等对象时仍然出现此消息。

有什么想法吗?

最后 "solve" 从源 postgis 2.2.2(也需要 gdal、proj4 和 geos)编译 问题,然后发布

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

因为 DROP EXTENSION postgis; 告诉我 postgis 不再存在了。

最后:

ALTER EXTENSION postgis UPDATE TO '2.2.2';
ALTER EXTENSION postgis_topology UPDATE TO '2.2.2';

可以从 PostgreSQL 9.4 再次访问我的 geom 数据和函数。似乎从源代码编译正确更新了 postgresql 的变量路径并安装了 /usr/lib/postgresql/9.4/lib/postgis-2.2.so 不再存在(对于 postgis-2.1.so),即使从 apt-get(重新)安装。

希望这会有所帮助。

第一个 运行(作为 postgres 管理员)在需要它的数据库中 (\c your-database-name):

ALTER EXTENSION postgis UPDATE;

如果returns成功,请检查您的版本

SELECT PostGIS_Full_Version();

但是,如果服务器 returns 找不到扩展名 postgis,则 运行

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
ALTER EXTENSION postgis UPDATE;

然后 运行ning

再次检查
SELECT PostGIS_Full_Version();

如果您正在使用 ubuntu

使用以下命令进入 postgres 交互式 shell

sudo -u postgres psql


\c database_name;


ALTER EXTENSION postgis UPDATE TO "2.4.4";


SELECT PostGIS_Full_Version();