我正在尝试设置一个GeoDjango应用程序来测试我之前遇到的问题。我已经建立了一个postgresql数据库,创建了一个新的Django项目和应用程序,但是当我尝试./manage.py syncdb
时,我得到了这个:
django.core.exceptions.IncorrectConfiguration:无法确定数据库"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及其模板等的了解不是那么好。有什么想法吗?谢谢。
X 10.9.1上使用自制软件安装的PostgreSQL 9.3和PostGIS 2.1时遇到了同样的问题。
对于此特定问题,您只需添加以下行:
POSTGIS_VERSION = ( 2, 1 )
使用PostGIS版本的逗号分隔数字来settings.py
。
我不知道为什么,但是Django在从PostGIS读取版本信息时遇到问题。
每当我在类似情况下遇到此错误时(即当数据库似乎是完全有效的 PostGIS 数据库时),事实证明settings.py
中的DATABASES
存在错误。连接到数据库失败时实际上是身份验证,但碰巧的是,在启动我的 GeoDjango 项目时,接触数据库的第一件事是来自django/contrib/gis/db/backends/postgis/operations.py
<</p>
postgis_lib_version
调用> 几个月前我遇到了同样的问题。我不得不再次重新创建template_database和主数据库。从这个链接。