2014-05-13 2 views
1

새로운 Posting Postgres와 Postgis Im Postgis v2.0을 사용하십시오.Postgis가있는 다중 다각형 열을 올바르게 작성하십시오.

sql:import.sql:53: ERROR: type "geometry" does not exist 
LINE 19:  geom public.geometry(MultiPolygon,4326) 
나는 SQL 코드를 얻을 수있었습니다

과 : 나는 다음 오류가

pg_restore -U db_user -d db_name -C backupfile.backup 

: 나는 데이터베이스가 이미 다음 줄을 사용하여, PostGIS와 작업 및 백업에서 데이터를 복원하려면이 나는 :) 그것이 내가 물론, 같은 오류가 실행하면, 및 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 스키마에서 생성하도록 요청 받았다. 문제가 될 수 있다고 생각하지만 실제로는 모른다. 사전에

감사

+1

당신은 PostGIS와의 다른 버전에서 복원을 참조하십시오? 'public'에 설치 되었다면 검색 경로에 두는 것이 좋습니다. SET search_path = ch01, public, pg_catalog; –

+0

사실, search_path를 올바르게 설정하는 것이 좋습니다. 그러나, 여기에 주요 문제가 아닙니다. –

답변

1

시도 :

create table ch01.geotable(
    geom geometry(MultiPolygon, 4326) 
); 

그것은 스키마 CH01에 속하는 테이블이 아닌 열입니다. 물론 테이블 생성 후 특정 사용자에게 액세스 권한을 부여 할 수 있습니다. 기하학 함수는 스키마 공용에 기본적으로 설치되어 해당 데이터베이스에 대한 액세스 권한이있는 모든 사용자가 일반적으로 사용할 수 있습니다. create table 문에 schema.datatype을 넣으면 오류가 발생합니다.

등 스키마, 사용자에 대한 자세한 내용은 공식 문서 http://www.postgresql.org/docs/9.1/static/ddl-schemas.html

관련 문제