11

我正在尝试设置一个 GeoDjango 应用程序来测试我之前遇到的问题。我已经建立了一个 postgresql 数据库,创建了一个新的 Django 项目和应用程序,但是当我尝试时,./manage.py syncdb我得到了这个:

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及其模板等的了解并不是那么好。有任何想法吗?谢谢。

4

3 回答 3

18

I had the same problem with PostgreSQL 9.3 and PostGIS 2.1 installed on OS X 10.9.1 using homebrew.

For this particular issue, you only need to add this line:

POSTGIS_VERSION = ( 2, 1 )

using the comma separated number for your PostGIS version to settings.py.

I'm not sure why, but Django's having trouble reading the version information from PostGIS.

于 2014-02-11T15:19:57.050 回答
5

DATABASES每当我在类似情况下遇到此错误时(即当数据库似乎是一个完全有效的 PostGIS 数据库时),结果证明settings.py. 连接到数据库失败时实际上是身份验证,但碰巧在启动我的 GeoDjango 项目时接触数据库的第一件事是postgis_lib_version来自的调用django/contrib/gis/db/backends/postgis/operations.py

于 2015-03-02T14:20:09.347 回答
1

几个月前我遇到了同样的问题。我不得不再次重新创建 template_database 和主数据库。从这个链接

于 2012-07-16T02:16:57.647 回答