PostGIS 错误:类型“地理”不存在

问题描述 投票:0回答:6

我刚刚将我的开发计算机升级到 Windows 7,因此正在重新安装 PostgreSQL 和 PostGIS。 我按照 Postgres 网站上的推荐使用了 Postgres Plus 安装程序,并按照 本教程 进行安装。 我使用 template_postgis 创建了一个数据库,我当前正在开发的应用程序能够毫无问题地连接到数据库。

但是,我的旧代码无法像以前那样使用 PostGIS

Geography
创建表格。 例如,当我尝试创建下表时:

CREATE TABLE test_area (
    id SERIAL PRIMARY KEY,
    name VARCHAR(1000),
    area GEOGRAPHY(POLYGON, 4326),
    start_time DATE,
    end_time DATE
)

我收到以下错误:

ERROR:  type "geography" does not exist
LINE 4:         area GEOGRAPHY(POLYGON, 4326),
                     ^

如果我在 pgAdmin III 的对象浏览器中查看数据库,我会看到一堆

Geometry
函数,因此安装似乎已正确运行。 我不确定我的问题可能是什么。 安装程序是否可以只安装PostGIS
Geometry
,而不安装
Geography

postgresql postgis
6个回答
73
投票

我以前也遇到过这个问题,但对我有帮助的并不是 GIS 网站上的答案。

我通过 Homebrew 安装了 Postgresql,并且还安装了 Postgresql 应用程序。不过,对于 PostGIS,我是通过 Homebrew 安装的。

当我遇到这个问题时,我正在运行 Postgresql 应用程序,而不是在终端中运行它,所以您当然会收到此 PostGIS 错误,因为 PostGIS 从未安装在 Postgresql 应用程序上。当我在终端中启动 Postgresql 后,它就对我有用了。

2014 年 9 月 25 日更新:

您可能没有在数据库中创建 PostGIS 扩展:

$ psql

psql> \c databaseName;

psql> CREATE EXTENSION Postgis;

6
投票

可能postgis有问题,先看看“geography”类型是否存在? 如下;

db_lbs=> \dT 地理

        List of data types
 Schema |   Name    | Description 
--------+-----------+-------------
 lbs    | geography | 
(1 row)

顺便请注意当前的search_path;

我猜您的模式中不存在“地理”类型,它可能存在于公共模式中, 所以先检查一下。


4
投票

我的问题在 GIS 网站 上得到了解答。 我安装了PostGIS 1.4,但是直到PostGIS 1.5才添加

Geography
。 所以我必须卸载已有的并重新安装 Postgres。 不过,我很难找到包含 PostGIS 1.5 的版本。 不过,我得到的建议是不要使用“Postgres Plus”专有软件,因为 EnterpriseDB 需要时间来移植最新的附加组件等。 相反,我被重定向到 EnterpriseDB 网站上的常规 PostgreSQL 下载,该网站非常难找到。 就是这里。 64位版本没有附带PostGIS,所以我不得不使用32位版本,这有效。 终于!


1
投票

我也遇到过同样的问题,我通过卸载postgres、postgis并重新安装并按照官方安装文档解决了这个问题。 对于窗户:

http://postgis.net/windows_downloads

对于 Ubuntu 和 OSX:

http://postgis.net/install


1
投票

如果有人在连接到使用 Qurkus 编写的 Heroku 应用程序时遇到相同的错误,修复方法如下 - 需要将

?currentSchema=YOUR_CURRENT_SCHEMA
附加到 JDBC URI


0
投票

我在这里为 supabase 用户声明这一点。 由于某种原因,至少在发布本文时,supabase 文档告诉您可以将扩展添加到不同的模式,例如 gis。这对我不起作用,我收到了上面提到的错误。跑了一段时间,在网上看了一个视频。

我发现,如果您将模式保留为“扩展”,它将允许您使用 postgis 数据类型创建表。至少在我创建的公共模式中。

© www.soinside.com 2019 - 2024. All rights reserved.