我绝对是 PostgreSQL 中的新手,我正在按照本教程检查我的 PostgreSQL 安装上是否安装了 PostGIS 扩展程序。< / p>
我正在使用 PostgreSQL 9.6.1 。
所以我可以通过命令行访问我的 PostgreSQL ,然后执行了这个命令:
SELECT PostGIS_full_version();
这是获得的输出:
C:\ Users \ Andrea&gt; 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 或者我做错了什么? (也许让我在特定的数据库上执行它?)
答案 0 :(得分:5)
你至少有两个问题。首先,
Il code page della console (850) differisce dal code page
di Windows (1252)
表示您安装了较旧版本的Postgres,因此,当您从某处键入psql时,会找到此旧版本。我不再使用Windows,但我猜测该位置将在您的环境变量的PATH中设置。运行不兼容的客户端和服务器版本通常是个坏主意。你可以通过删除Postgres的旧版本(大概是8.xx)的路径来解决这个问题。
第二个问题,就是你正在运行
来自Postgres DB的SELECT PostGIS_full_version();
,正如您从
中看到的那样postgres的=#
一开始。安装Postgis时,通常是通过
CREATE EXTENSION POSTGIS;
您通常会在要在空间上启用的数据库中执行此操作,而不是在Postgres数据库中执行此操作,而后者则用于系统表等。注意,Postgis没有全局安装。另一个选项是将Postgis功能安装到template1 db中,这意味着您创建的所有后续数据库都将自动安装Postgis。