2012-05-14 40 views
11

Tôi đang cố gắng thiết lập ứng dụng GeoDjango để kiểm tra an earlier problem Tôi đang gặp phải. Tôi đã thiết lập một cơ sở dữ liệu postgresql, tạo ra một dự án Django mới và ứng dụng, nhưng khi tôi cố gắng ./manage.py syncdb tôi có được điều này:Cơ sở dữ liệu của tôi PostGIS trông ổn nhưng GeoDjango nghĩ khác ... tại sao?

django.core.exceptions.ImproperlyConfigured: Không thể xác định phiên bản PostGIS cho cơ sở dữ liệu "django_geotest". GeoDjango yêu cầu ít nhất PostGIS phiên bản 1.3. Cơ sở dữ liệu có được tạo từ mẫu cơ sở dữ liệu không gian không?

Mà tôi không hiểu như trước đây tôi đã trải qua tất cả các cài đặt các yêu cầu GeoDjango, và tạo ra cơ sở dữ liệu django_geotest này bằng cách làm này:

$ createdb -T template_postgis django_geotest 

Và nó trông giống như cơ sở dữ liệu một cách chính xác thiết lập:

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) 

Mô tả cơ sở dữ liệu, tôi có được điều này:

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) 

Vì vậy, bây giờ tôi đang bị mắc kẹt như những gì để thử tiếp theo ... Kiến thức của tôi về postgresql và các mẫu của nó vv không phải là tuyệt vời. Bất kỳ ý tưởng? Cảm ơn.

+0

Tôi đã có cùng một vấn đề trước nhưng tôi không thể tìm ra cách tôi giải quyết nó. Tôi nghĩ rằng tôi đã thử điều này: http://stackoverflow.com/questions/5907672/installation-error-while-trying-to-install-a-gis-application-using-geodjango – dannyroa

+1

có cùng một vấn đề với PostgreSQL 9.3 và PostGIS 2.1 được cài đặt trên OS X 10.9.1 sử dụng homebrew, tất cả những gì tôi phải làm là thêm 'POSTGIS_VERSION = (2, 1)' vào 'settings.py'. Nó chỉ đơn giản là không thể đọc các thiết lập – BenjaminGolder

+0

@ BenjaminGolder - mà giải quyết vấn đề của tôi cũng ... Đề nghị nó phải là câu trả lời đúng? – Erve1879

Trả lời

18

Tôi đã gặp sự cố tương tự với PostgreSQL 9.3 và PostGIS 2.1 được cài đặt trên OS X 10.9.1 bằng cách sử dụng homebrew.

Đối với vấn đề đặc biệt này, bạn chỉ cần thêm dòng này:

POSTGIS_VERSION = (2, 1) 

sử dụng số dấu phẩy tách ra cho phiên bản PostGIS của bạn để settings.py.

Tôi không chắc chắn lý do tại sao, nhưng Django gặp sự cố khi đọc thông tin phiên bản từ PostGIS.

+0

Sẽ đánh dấu đây là câu trả lời chính xác chỉ vì nó có vẻ phù hợp với một vài người; Tôi đã không thử nó. Cảm ơn! –

+0

where.py? – Sekai

1

Tôi đã gặp vấn đề tương tự vài tháng trước. Tôi đã phải tạo lại template_database và db chính. From this link.

5

Bất cứ khi nào tôi gặp lỗi này trong một tình huống tương tự (tức là khi cơ sở dữ liệu có vẻ là cơ sở dữ liệu PostGIS hoàn toàn hợp lệ) thì đã xảy ra lỗi trong DATABASES trong settings.py. Nó thực sự xác thực khi kết nối với cơ sở dữ liệu bị lỗi, nhưng nó chỉ xảy ra khi điều đầu tiên chạm vào cơ sở dữ liệu khi khởi động dự án GeoDjango của tôi là django/contrib/gis/db/backends/postgis/operations.pydjango/contrib/gis/db/backends/postgis/operations.py

+0

Đây là câu trả lời hay nhất. Xem vé https://code.djangoproject.com/ticket/24862#ticket – Bryce

Các vấn đề liên quan