如何确定是否在数据库上启用了 postgis?

Mis*_*tyD 6 postgresql postgis

我想知道是否有办法确定在数据库上启用了 PostGis。

我正在尝试用我的开发机器复制我的生产服务器,但我不确定我的开发机器上的数据库是否启用了 PostGIS 或 postgis_topology 或两者。

我试图四处寻找解决方案,但什么也想不出来。
在这方面的任何建议都会有所帮助。

Joh*_*fis 8

假设您可以访问您的数据库(通过终端或 pgadmin 应用程序),请尝试以下操作:

  1. 连接到您的数据库
  2. 运行以下查询之一(如果您愿意,可以按顺序运行两者):

    SELECT PostGIS_version();
    SELECT PostGIS_full_version();
    
    Run Code Online (Sandbox Code Playgroud)

如果没有发生错误,那么您已为该数据库启用了 PostGIS。


参考:


小智 5

我只想补充约翰·穆塔菲斯的回应,因为目前我无法对答案发表评论。

我的情况有点不同,因为我postgis为不同的模式创建了扩展,我们称之为schema_name

CREATE EXTENSION postgis SCHEMA schema_name
Run Code Online (Sandbox Code Playgroud)

只是运行接受的答案的查询给了我一个错误,指出“没有函数与给定的名称和参数类型匹配”。相反,我必须确保在函数调用之前添加架构名称,如下所示:

SELECT schema_name.PostGIS_version();
SELECT schema_name.PostGIS_full_version();
Run Code Online (Sandbox Code Playgroud)

这最终对我有用。