2012-05-14 24 views
11

我試圖設置一個GeoDjango應用程序來測試我正在測試的an earlier problem。我已經設置了PostgreSQL數據庫,創建一個新的Django項目和應用程序,但是當我嘗試./manage.py syncdb我得到這個:我的PostGIS數據庫看起來不錯,但GeoDjango認爲不然......爲什麼?

django.core.exceptions.ImproperlyConfigured:無法確定數據庫「django_geotest」的PostGIS版本。 GeoDjango至少需要PostGIS版本1.3。數據庫是從空間數據庫模板創建的嗎?

這正如我先前通過全部安裝GeoDjango內置的要求是,而且做這個創造了這個django_geotest數據庫我不明白:

$ createdb -T template_postgis django_geotest 

它看起來像數據庫是正確的設置:

django_geotest=# SELECT PostGIS_full_version(); 
            postgis_full_version           
------------------------------------------------------------------------------------------------------- 
POSTGIS="1.5.3" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.3" USE_STATS 
(1 row) 

描述的數據庫,我得到這個:

django_geotest=# \d     
      List of relations 
Schema |  Name  | Type | Owner 
--------+-------------------+-------+------- 
public | geography_columns | view | phil 
public | geometry_columns | table | phil 
public | spatial_ref_sys | table | phil 
(3 rows) 

所以現在我堅持下一步要做什麼......我對postgresql及其模板等的瞭解並不是很好。有任何想法嗎?謝謝。

+0

postgis_lib_version通話之前我有同樣的問題,但我想不出我如何解決它。我想我試過這個:http://stackoverflow.com/questions/5907672/installation-error-while-trying-to-install-a-gis-application-using-geodjango – dannyroa

+1

與PostgreSQL 9.3和PostGIS 2.1有同樣的問題使用自制軟件安裝在OS X 10.9.1上,我只需要將'POSTGIS_VERSION =(2,1)'添加到'settings.py'。它根本無法讀取設置 – BenjaminGolder

+0

@BenjaminGolder - 解決了我的問題以及...建議它應該是正確的答案? – Erve1879

回答

18

我在使用自制軟件在OS X 10.9.1上安裝PostgreSQL 9.3和PostGIS 2.1時遇到了同樣的問題。

對於這個特定的問題,您只需要添加此行:你的PostGIS版本

POSTGIS_VERSION = (2, 1) 

用逗號分隔號settings.py

我不知道爲什麼,但Django無法從PostGIS讀取版本信息。

+0

只是因爲它似乎適用於幾個人而將其標記爲正確的答案;我沒有嘗試過。謝謝! –

+0

其中是settings.py? – Sekai

1

幾個月前我有同樣的問題。我不得不重新創建template_database和主分貝。 From this link

5

每當我在類似的情況下(即當數據庫看起來是一個完全有效的PostGIS數據庫)出現這個錯誤時,結果發現在中有DATABASES錯誤。連接數據庫失敗時,它的真正身份驗證,但它只是碰巧開始了我的GeoDjango內置項目時,涉及的數據庫的第一件事就是從django/contrib/gis/db/backends/postgis/operations.py

+0

這是最好的答案。查看票證https://code.djangoproject.com/ticket/24862#ticket – Bryce

相關問題