我是新的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模式中创建,我认为这可能是问题,但我真的不知道。
提前致谢
答案 0 :(得分:1)
尝试:
create table ch01.geotable(
geom geometry(MultiPolygon, 4326)
);
属于模式ch01的表,而不是列。当然,您可以在创建表格后向特定用户授予访问权限。几何函数默认安装在模式public中,因此对于具有该数据库访问权限的任何人通常都可以使用它们 - 您的错误来自于在create table语句中放置schema.datatype。
有关模式,用户等的更多信息,请参阅官方文档http://www.postgresql.org/docs/9.1/static/ddl-schemas.html。