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