これは既知の問題だと思いますが、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.
ただし、ジオメトリタイプを使用するテーブルなどのオブジェクトにアクセスする場合は、このメッセージが表示されます。
何か案が?
最後に、コンパイルの問題を「解決」しますソースから 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';
PostgreSQL9.4からgeomデータと関数に再度アクセスできるようになりました。ソースからコンパイルすると、postgresqlの変数パスが正しく更新され、/ usr/lib/postgresql/9.4/lib/postgis-2.2.soがインストールされたようですが、(postgis-2.1.soの場合も) apt-getから(再)インストールします。
これがお役に立てば幸いです。
最初の実行(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();
Ubuntuを使用している場合
以下のコマンドを使用して、postgresインタラクティブシェルに入力します
Sudo -u postgres psql
\ c database_name;
ALTER EXTENSION postgis UPDATE TO "2.4.4";
SELECT PostGIS_Full_Version();