【发布时间】:2019-04-27 00:22:40
【问题描述】:
我想知道是否有办法确定在数据库上启用了 PostGis。
我正在尝试使用我的开发机器复制我的生产服务器,但我不确定我的开发机器上的数据库是否启用了 PostGIS 或 postgis_topology 或两者。
我试图四处寻找解决方案,但无法提出任何建议。
这方面的任何建议都会有所帮助。
【问题讨论】:
标签: postgresql postgis
我想知道是否有办法确定在数据库上启用了 PostGis。
我正在尝试使用我的开发机器复制我的生产服务器,但我不确定我的开发机器上的数据库是否启用了 PostGIS 或 postgis_topology 或两者。
我试图四处寻找解决方案,但无法提出任何建议。
这方面的任何建议都会有所帮助。
【问题讨论】:
标签: postgresql postgis
假设您可以访问您的数据库(通过终端或 pgadmin 应用程序),请尝试以下操作:
运行以下查询之一(或按顺序运行):
SELECT PostGIS_version();
SELECT PostGIS_full_version();
如果没有发生错误,那么您为该数据库启用了 PostGIS。
【讨论】:
我只想补充 John Moutafis 的回复,因为此时我无法对答案发表评论。
我的情况有点不同,因为我为不同的架构创建了 postgis 扩展,我们称之为 schema_name:
CREATE EXTENSION postgis SCHEMA schema_name
刚刚运行接受的答案的查询给了我一个错误,指出“没有函数与给定的名称和参数类型匹配”。相反,我必须确保在函数调用之前添加架构名称,如下所示:
SELECT schema_name.PostGIS_version();
SELECT schema_name.PostGIS_full_version();
这最终对我有用。
【讨论】: