2011-08-09 83 views
8

我剛將我的開發機器升級到Windows 7,因此重新安裝PostgreSQL和PostGIS。我使用了PostgreSQL網站上推薦的Postgres Plus installer,並按照this tutorial進行安裝。我使用template_postgis創建了一個數據庫,並且我目前正在開發的應用程序能夠連接到數據庫而沒有任何問題。PostGIS錯誤:類型「地理」不存在

但是,我的舊代碼無法像以前那樣使用PostGIS Geography創建表格。例如,當我嘗試創建如下表:

CREATE TABLE test_area (
    id SERIAL PRIMARY KEY, 
    name VARCHAR(1000), 
    area GEOGRAPHY(POLYGON, 4326), 
    start_time DATE, 
    end_time DATE 
) 

我收到以下錯誤:

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

如果我的pgAdmin III的對象布勞爾看數據庫下,我看到一堆Geometry函數,所以安裝似乎已正確運行。我不確定我的問題可能是什麼。安裝程序是否可能只安裝PostGIS Geometry,而不是Geography

回答

2

我得到了回答過的GIS site我的問題。我安裝了PostGIS 1.4,但是直到PostGIS 1.5後才添加Geography。所以我不得不卸載我的東西並重新安裝Postgres。不過,我很難找到包含PostGIS 1.5的版本。不過,我被告知不使用「Postgres Plus」專有軟件,因爲它需要EnterpriseDB時間來移植最新的附加軟件等。相反,我被重定向到了EnterpriseDB網站上的常規PostgreSQL下載,這非常難以找到。 Here it is。 64位版本沒有帶有PostGIS,所以我不得不使用32位版本,而是使用了它。最後!

3

也許這與postgis的一些問題,首先看看類型「地理」是否存在?就像下面的那樣;

db_lbs => \的dT地理

 List of data types 
Schema | Name | Description 
--------+-----------+------------- 
lbs | geography | 
(1 row) 

順便說一句,請大家關注當前SEARCH_PATH;

我猜型「地理」是不是在你的模式裏,可能存在在公共模式, 所以首先檢查它。

18

我以前也遇到過這個問題,但是幫助我的不是GIS網站上的答案。

我通過Homebrew安裝了Postgresql,並且我還安裝了Postgresql應用程序。然而,至於PostGIS,我通過Homebrew安裝了它。

當我遇到這個問題時,我正在運行Postgresql應用程序,而不是在終端中運行它,所以當然你會得到這個PostGIS錯誤,因爲PostGIS從未安裝在Postgresql應用程序上。一旦我在終端中啓動Postgresql,它對我有用。

更新2014年9月25日:

這有可能是你沒有在數據庫中創建的擴展PostGIS的:

$ psql 

psql> \c databaseName; 

psql> CREATE EXTENSION Postgis;