2011-08-12 43 views
2

我有一個sql腳本,可以創建幾個表格,一個觸發器和一個觸發器函數。當我在「查詢」部分執行它們時,所有命令都在pgAdmin中工作。我的目標是將所有這些命令放在一個腳本中,以便我可以相對容易和快速地在任何機器上設置數據庫。當我嘗試運行通過PSQL的腳本,不過,我得到的所有,我嘗試使用Geography類型的線以下錯誤:PostGIS不適用於psql嗎?

ERROR: type "geography" does not exist 

這是沒有意義的,因爲我可以複製和粘貼完全相同的查詢到pgAdmin的查詢編輯器中,它工作得很好。 psql不支持PostGIS嗎?或者,也許只是不是最新版本的PostGIS 1.5.3,其中包含新的Geography類型?我能做些什麼來解決這個問題嗎?

編輯

我的查詢的一個示例:

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