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

你至少有两个问题。首先,

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

意味着您安装了旧版本的 Postgres,因此,当您从某个地方键入 psql 时,会找到这个旧版本。我不再使用 Windows,但我猜该位置将在您的环境变量的 PATH 中设置。运行不兼容的客户端和服务器版本通常是个坏主意。您可以通过删除 Postgres 旧版本(可能是 8.xx)的路径来解决此问题。

第二个问题是你正在跑步

选择 PostGIS_full_version();

来自 Postgres DB,正如您从

postgres=#

在开始时。当你安装 Postgis 时,通常通过

创建扩展 POSTGIS;

您通常会在要在空间上启用的数据库中执行此操作,而不是在用于系统表等的 Postgres 数据库中执行此操作。注意,Postgis 不是全局安装的。另一个选项是将 Postgis 功能安装到 template1 数据库中,这意味着您创建的所有后续数据库都将自动安装 Postgis。

于 2016-11-02T14:13:56.603 回答