2012-05-14 22 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

相关问题