错误: 类型"public.geometry"不存在

8

我需要创建一个空间数据库,并已安装了Postgres并添加了PostGIS扩展。

当我尝试添加一个public.geometry类型的列时,总是会出现错误消息:

几何类型不存在

我不熟悉Postgres,也不知道可能的解决方案。我尝试在Google上搜索,但没有找到任何有用的信息。

2个回答

22

你执行了 CREATE EXTENSION postgis; 吗?在 psql 中检查 \dx

你将PostGIS扩展放在其他架构中了吗?在 psql 中检查 \dT *.geometry


是的,Craig,扩展已经创建了,还有其他模式吗?我只在我的数据库中添加了postGIS扩展。 - Jihane Hemicha
1
请在psql中运行上面显示的确切命令,并编辑您的问题以显示输出。 - Craig Ringer
1
问题已经成功地解决了,非常感谢您的帮助。问题并不在PostGis扩展程序中,实际上问题出在PGAdmin 4上,这个版本不支持几何类型。但是当我使用查询工具创建表时,一切都运行得非常顺利!! - Jihane Hemicha
1
如果对大家有帮助的话,'查询工具'是PgAdmin4中的一个选项。所以,在PgAdmin4内部,1)创建一个新数据库,2)右键单击新数据库名称,3)选择'查询工具',4)在查询工具界面中运行'create extension postgis;',5)再次右键单击数据库名称,选择'还原',然后6)继续加载您的GIS数据。希望这能帮到您! - Martin Sommer

7
这可能是因为在目标数据库之外创建postgis扩展,也就是说,您登录到DB服务器时没有指定数据库。
psql -h DB_HOST -U DB_USER 
CREATE EXTENSION postgis;
\q
<apply dump here>

这件事发生在我身上。

解决方案:我需要从这个空间中删除扩展名,然后指定目标数据库,然后创建postgis扩展:

psql -h DB_HOST -U DB_USER DB_NAME
CREATE EXTENSION postgis;
\q
<apply dump here as DB_USER, onto DB_NAME>

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