我想这是一个已知问题,但由于我使用的脚本删除了我的postgresql-9.4-postgis-2.1,我现在无法摆脱Debian下的这个SQL错误。
无法访问文件«$ libdir / postgis-2.1»没有这样的文件或目录
我做了以下事情:
- 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;
返回
[...]
postgis 2.1.4 2.1.4 PostGIS geometry, geography, and raster spatial types and functions.
但在访问使用几何类型的表这样的对象时仍然是这条消息。
有什么想法吗?
答案 0 :(得分:6)
最后“解决”编译从源 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安装。
希望这会有所帮助。
答案 1 :(得分:1)
首次运行(作为postgres管理员)
ALTER EXTENSION postgis UPDATE;
如果成功返回,请检查您的版本
SELECT PostGIS_Full_Version();
但是,如果服务器返回它找不到扩展名postgis,则运行
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
ALTER EXTENSION postgis UPDATE;
再次通过运行检查
SELECT PostGIS_Full_Version();
答案 2 :(得分:0)
如果您正在使用ubuntu
使用以下命令输入postgres交互式shell
sudo -u postgres psql
\ c database_name;
ALTER EXTENSION postgis更新为“ 2.4.4”;
选择PostGIS_Full_Version();