Postgis / Geodjango:无法确定PostGIS版本的数据库

我正在尝试启动GeoDjango应用程序。 我已经在Lion上使用brew来安装Postgres和PostGIS。 我使用template_postgis创建了一个数据库: createdb -T template_postgis test

当我运行python manage.py syncdb ,出现以下错误:

django.core.exceptions.ImproperlyConfigured:无法确定数据库“test”的PostGIS版本。 GeoDjango至少需要PostGIS版本1.3。 数据库是从空间数据库模板创建的吗?

我如何追踪错误的来源? 我已经检查过,用户和通过配置有权访问数据库等。


作为第一个调试步骤:尝试手动检查postgis模板版本,例如在命令行上使用psql test连接到数据库,并使用select postgis_lib_version();查询select postgis_lib_version(); 。 这个函数应该在template_postgis中定义并返回一些数字。 示例输出:

$ psql test
psql (9.0.4)
Type "help" for help.

test=# select postgis_lib_version();

 postgis_lib_version
---------------------
 1.5.2
(1 row)

如果发生错误,您知道错误在数据库中。


只需在您的settings.py中添加您的正确版本的postgis:

POSTGIS_VERSION =(2,0,3)


对我来说,解决方案是在postgres终端中运行以下代码:

psql database_name

database_name=# CREATE EXTENSION postgis;

如果您收到ERROR: relation "spatial_ref_sys" already exists ,请在CREATE EXTENSION postgis之前运行以下CREATE EXTENSION postgis

 drop table spatial_ref_sys;
 drop table geometry_columns;
链接地址: http://www.djcxy.com/p/79497.html

上一篇: Postgis / Geodjango: Cannot determine PostGIS version for database

下一篇: Releasing an ASP.NET MVC 3 OpenId StarterKit under Open Source License