我刚刚将我的开发计算机升级到 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
?
我以前也遇到过这个问题,但对我有帮助的并不是 GIS 网站上的答案。
我通过 Homebrew 安装了 Postgresql,并且还安装了 Postgresql 应用程序。不过,对于 PostGIS,我是通过 Homebrew 安装的。
当我遇到这个问题时,我正在运行 Postgresql 应用程序,而不是在终端中运行它,所以您当然会收到此 PostGIS 错误,因为 PostGIS 从未安装在 Postgresql 应用程序上。当我在终端中启动 Postgresql 后,它就对我有用了。
2014 年 9 月 25 日更新:
您可能没有在数据库中创建 PostGIS 扩展:
$ psql
psql> \c databaseName;
psql> CREATE EXTENSION Postgis;
可能postgis有问题,先看看“geography”类型是否存在? 如下;
db_lbs=> \dT 地理
List of data types
Schema | Name | Description
--------+-----------+-------------
lbs | geography |
(1 row)
顺便请注意当前的search_path;
我猜您的模式中不存在“地理”类型,它可能存在于公共模式中, 所以先检查一下。
我也遇到过同样的问题,我通过卸载postgres、postgis并重新安装并按照官方安装文档解决了这个问题。 对于窗户:
http://postgis.net/windows_downloads
对于 Ubuntu 和 OSX:
如果有人在连接到使用 Qurkus 编写的 Heroku 应用程序时遇到相同的错误,修复方法如下 - 需要将
?currentSchema=YOUR_CURRENT_SCHEMA
附加到 JDBC URI
我在这里为 supabase 用户声明这一点。 由于某种原因,至少在发布本文时,supabase 文档告诉您可以将扩展添加到不同的模式,例如 gis。这对我不起作用,我收到了上面提到的错误。跑了一段时间,在网上看了一个视频。
我发现,如果您将模式保留为“扩展”,它将允许您使用 postgis 数据类型创建表。至少在我创建的公共模式中。