1

私はPostgreSQLがまったく初めてで、このチュートリアルに従って、 PostgreSQLインストールにPostGIS拡張機能がインストールされているかどうかを確認しています。

これはチュートリアルです: https://www.a2hosting.com/kb/developer-corner/postgresql/determining-the-postgresql-and-postgis-versions

PostgreSQL 9.6.1を使用しています。

そのため、コマンドラインからPostgreSQLにアクセスでき、次のコマンドを実行しました。

SELECT PostGIS_full_version();

得られた出力は次のとおりです。

C:\Users\Andrea>pasql -u admin 'pasql' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。

C:\Users\Andrea>psql -U postgres
psql (9.6.1)
ATTENZIONE: Il code page della console (850) differisce dal code page
            di Windows (1252). I caratteri a 8-bit potrebbero non
            funzionare correttamente. Vedi le pagine di riferimento
            psql "Note per utenti Windows" per i dettagli.
Digita "help" per avere un aiuto.

postgres=# SELECT PostGIS_full_version();
ERROR:  function postgis_full_version() does not exist
RIGA 1: SELECT PostGIS_full_version();
               ^
NOTA: No function matches the given name and argument types. You might need to add explicit type casts.
postgres=#

そのため、標準ユーザーでデータベースにアクセスしてからコマンドを実行しましたが、PostGIS_full_version()関数が存在しないようです。

では、手段とは?これは単純にPoistGISがまだインストールされていないことを意味しますか、それとも何か間違っているのでしょうか? (おそらく、特定のデータベースで実行する必要がありますか?)

4

1 に答える 1

6

少なくとも 2 つの問題があります。初めに、

Il code page della console (850) differisce dal code page
        di Windows (1252)

は、古いバージョンの Postgres がインストールされていることを意味します。そのため、どこかから psql と入力すると、この古いバージョンが見つかります。Windows はもう使用していませんが、場所は環境変数の PATH に設定されると思います。一般に、互換性のないバージョンのクライアントとサーバーを実行することはお勧めできません。古いバージョン (おそらく 8.xx) の Postgres へのパスを削除することで、これを修正できます。

2番目の問題は、実行していることです

SELECT PostGIS_full_version();

からわかるように、Postgres DB から

postgres=#

開始時。Postgis をインストールするとき、通常は

拡張 POSTGIS を作成します。

通常、これはシステム テーブルなどの Postgres db ではなく、空間的に有効にする DB で行います。Postgis はグローバルにインストールされないことに注意してください。もう 1 つのオプションは、Postgis 関数を template1 データベースにインストールすることです。これは、作成する後続のすべてのデータベースに Postgis が自動的にインストールされることを意味します。

于 2016-11-02T14:13:56.603 に答える