2011-08-12 5 views
2

나는 여러 테이블, 트리거 및 트리거 함수를 생성하는 sql 스크립트가 있습니다. "쿼리"섹션에서 모든 명령을 실행할 때 pgAdmin에서 모든 명령이 작동합니다. 필자의 목표는 모든 명령을 스크립트에 넣어 모든 컴퓨터에서 데이터베이스를 비교적 쉽고 빠르게 설정할 수 있도록하는 것입니다. 내가 psql를 통해 스크립트를 실행하려고 할 때, 그러나, 나는 Geography 유형을 사용하려고 모든 행에 다음과 같은 오류를 얻을 :PostGIS는 psql에서 작동하지 않습니까?

ERROR: type "geography" does not exist 

내가 복사하여 붙여 넣을 수 있기 때문에 그것은 이해가되지 않습니다를 pgAdmin의 쿼리 편집기에 똑같은 쿼리가 제대로 작동합니다. psql이 PostGIS를 지원하지 않습니까? 아니면 최신 Geography 유형을 포함하는 PostGIS의 최신 버전 1.5.3이 아닐까요? 이 문제를 해결하기 위해 할 수있는 일이 있습니까?

편집

내 쿼리 중 하나의 예 :

CREATE TABLE source_imagery (
    id SERIAL PRIMARY KEY, 
    image_type VARCHAR(1000), 
    image_path VARCHAR(1000), 
    boundary GEOGRAPHY(POLYGON, 4326), 
    image_time TIMESTAMP, 
    catalog_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
); 

오류 메시지 :

ERROR: type "geography" does not exist 
LINE 5:  boundary GEOGRAPHY(POLYGON, 4326), 
        ^

답변

1

당신은 pgAdmin 직접 지정하여 사용하는 것과 같은 psql를 사용하려고 할 수 있습니다 그것. Mac OS X에서는 pgAdmin3.app/Contents/SharedSupport/psql에 있습니다. 그러나 실제로 중요한 것은 클라이언트 버전이 아닌 서버 버전입니다. 두 경우 모두 동일한 데이터베이스에 연결하고 있는지 확인해야합니다.

+0

아, 맞았 어. 내 문제는 내 스크립트를 데이터베이스를 만들고 다음 테이블을 만들려고했다. 스크립트를 두 부분으로 분리해야했습니다. 첫 번째 스크립트는'postgres' 데이터베이스를 통해 psql에 연결하고 두 번째 스크립트는 새로 생성 된 데이터베이스를 통해 psql에 연결합니다. 그게 내 문제를 해결해 줬어. 당신의 도움을 주셔서 감사합니다! – Steph