我正在尝试推出一个GeoDjango应用程序。我在狮子上安装了使用brew的Postgres & PostGIS。我使用template_postgis:createdb -T template_postgis test创建了一个数据库。
当我运行python manage.py syncdb时,会得到以下错误:
django.core.exceptions.ImproperlyConfigured:无法确定数据库“测试”的PostGIS版本。GeoDjango至少需要PostGIS 1.3版本。数据库是从空间数据库模板创建的吗?
如何追踪错误的来源?我检查了配置中的用户是否可以访问数据库等。
发布于 2011-10-16 19:51:34
作为第一个调试步骤:尝试手动检查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)如果发生错误,您知道该错误在数据库中。
发布于 2013-11-30 18:53:19
只需在您的settings.py中添加正确版本的postgis:
POSTGIS_VERSION = (2,0,3)
发布于 2015-04-20 21:28:33
我的解决方案是在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;https://stackoverflow.com/questions/7491798
复制相似问题