【发布时间】:2014-05-13 07:26:35
【问题描述】:
我是使用 postgres 和 postgis 的新手,我正在使用 postgis v2.0。 我有一个已经在使用 postgis 的数据库,并希望使用下一行从备份中恢复数据:
pg_restore -U db_user -d db_name -C backupfile.backup
我得到下一个错误:
sql:import.sql:53: ERROR: type "geometry" does not exist
LINE 19: geom public.geometry(MultiPolygon,4326)
我能够得到 sql 代码,如果我执行它,我当然会得到同样的错误 :), sql代码是:
CREATE SCHEMA ch01;
ALTER SCHEMA ch01 OWNER TO db_user;
SET search_path = ch01, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
CREATE TABLE geotable (
...
geom public.geometry(MultiPolygon,4326)
);
...
你能帮帮我吗?使用此必填列创建此表的正确方法是什么?请注意,此表不是在几何类型所在的公共架构中创建的,而是要求在 ch01 架构中创建,我认为这可能是问题,但我真的不知道。
提前致谢
【问题讨论】:
-
您是从不同版本的 PostGIS 恢复吗?如果它安装在
public中,最好将其保留在搜索路径中,因此SET search_path = ch01, public, pg_catalog; -
没错,正确设置 search_path 总是一个好主意,但是,这不是这里的主要问题。
标签: sql postgresql postgis