Ano*_*ith 7 migration postgresql postgis
我想这是一个已知的问题,但由于我使用的脚本删除了我的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
Run Code Online (Sandbox Code Playgroud)
并SELECT * FROM pg_available_extensions;返回
[...]
postgis 2.1.4 2.1.4 PostGIS geometry, geography, and raster spatial types and functions.
Run Code Online (Sandbox Code Playgroud)
但是在访问像使用几何类型的表这样的对象时仍然是这条消息.
任何的想法?
最后"解决" 源 postgis 2.2.2 编译的问题(也需要gdal,proj4和geos)然后发布
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
Run Code Online (Sandbox Code Playgroud)
因为DROP EXTENSION postgis;告诉我postgis不再存在.
最后:
ALTER EXTENSION postgis UPDATE TO '2.2.2';
ALTER EXTENSION postgis_topology UPDATE TO '2.2.2';
Run Code Online (Sandbox Code Playgroud)
从PostgreSQL 9.4再次访问我的geom数据和函数.似乎从源代码编译正确更新了postgresql的变量路径并安装了不再存在的/usr/lib/postgresql/9.4/lib/postgis-2.2.so(对于postgis-2.1.so也是如此),即使是(重新)从apt-get安装.
希望这会有所帮助.
小智 5
首先在需要它的数据库中运行(作为 postgres 管理员)(\c your-database-name):
ALTER EXTENSION postgis UPDATE;
Run Code Online (Sandbox Code Playgroud)
如果成功返回,请检查您的版本
SELECT PostGIS_Full_Version();
Run Code Online (Sandbox Code Playgroud)
但是,如果服务器返回找不到扩展名 postgis,则运行
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
ALTER EXTENSION postgis UPDATE;
Run Code Online (Sandbox Code Playgroud)
并通过运行再次检查
SELECT PostGIS_Full_Version();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9095 次 |
| 最近记录: |