28

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

当我运行时python manage.py syncdb,我收到以下错误:

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

如何追踪错误的来源?我已经检查了用户并传入配置是否可以访问数据库等。

4

5 回答 5

41

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

POSTGIS_VERSION = (2, 0, 3)

于 2013-11-30T18:53:19.810 回答
19

作为第一个调试步骤:尝试手动检查 postgis 模板版本,例如在命令行上使用 连接到您的数据库psql test,然后使用 查询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)

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

于 2011-10-16T19:51:34.343 回答
10

我的解决方案是在 postgres 终端中运行以下命令:

psql database_name

database_name=# CREATE EXTENSION postgis;

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

 drop table spatial_ref_sys;
 drop table geometry_columns;
于 2015-04-20T21:28:33.977 回答
3

如果先前的选择返回错误,则可能是该数据库上安装了一个特定版本的 PostGIS,您将 Postgres.app 更新为较新版本,捆绑了较新版本的 PostGIS。例如,在最近从 Postgis 2.0 更新到 2.1 之后

在这种情况下,您可以在复制回一些库后进行迁移,如本票中所述

于 2013-09-23T16:04:21.053 回答
2

如果您正在使用尝试删除它或按照https://github.com/django-debug-toolbar/django-debug-toolbar/issues/442django_debug_toolbar上的建议注释掉debug_toolbar/utils/tracking/db.py第 152 行

于 2013-11-26T05:21:50.000 回答