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

22
我刚刚将我的开发电脑升级到了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的对象浏览器中查看数据库,我会看到一堆几何函数,所以安装似乎运行正确。我不确定我的问题可能是什么。安装程序是否可能只安装PostGIS 几何,而不是地理

5个回答

70

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

我通过Homebrew安装了Postgresql,也安装了Postgresql应用程序。然而,对于PostGIS,我是通过Homebrew安装的。

当我遇到这个问题时,我正在运行Postgresql应用程序,而不是在终端中运行它,所以自然会出现这个PostGIS错误,因为PostGIS从未安装在Postgresql应用程序中。一旦我在终端中启动Postgresql,它就能正常工作。

更新 9/25/2014:

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

$ psql

psql> \c databaseName;

psql> CREATE EXTENSION Postgis;

6
也许postgis存在一些问题,首先看看"geography"类型是否存在?就像下面这样;
db_lbs => \dT geography
        List of data types
 Schema |   Name    | Description 
--------+-----------+-------------
 lbs    | geography | 
(1 row)

顺便提一下,请注意当前的搜索路径;

我猜想"type"为"geography"的类型在你的模式中不存在,可能存在于公共模式中, 所以首先要检查它。


4

我在GIS网站上得到了我的问题的答案。 我安装了PostGIS 1.4,但是Geography直到PostGIS 1.5才被添加。 因此,我不得不卸载我拥有的东西并重新安装Postgres。 然而,我很难找到包含PostGIS 1.5的版本。 我被建议不要使用“Postgres Plus”专有软件,因为需要EnterpriseDB花费时间来移植最新的附加组件等。 相反,我被重定向到EnterpriseDB网站上的常规PostgreSQL下载页面,这令人惊讶地棘手。 这里是下载链接。 64位版本没有附带PostGIS,所以我必须使用32位版本,这起作用了。 终于!


1

1
如果有人在连接使用Quarkus编写的Heroku应用程序时遇到相同的错误,解决方法如下--需要将?currentSchema=YOUR_CURRENT_SCHEMA附加到JDBC URI。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接