【问题标题】:GeoDjango: syncdb failing to create PointFieldGeoDjango:syncdb 无法创建 PointField
【发布时间】:2012-11-30 21:54:13
【问题描述】:

我在 MacOS 10.7 上使用 Django 1.2 和最新版本的 Postgres.app。当我运行 manage.py syncdb 创建一个包含 PointField 的数据库时,我收到以下错误:

Installing index for stores.Store model
Failed to install index for stores.Store model: operator class "gist_geometry_ops" does not exist for access method "gist"

这是我之前用来创建空间数据库的 Postgres 命令(在之前有 this problem 之后) - 它们都不会产生任何错误,这表明 PostGIS 设置正常:

$ psql -d stores -U storeadmin
# CREATE EXTENSION postgis;
# ALTER TABLE geometry_columns OWNER TO storeadmin;
# ALTER TABLE spatial_ref_sys OWNER TO storeadmin;

做了一些谷歌搜索后,我想知道 Postgres.app 是否带有与 Django 1.2 不兼容的 PostGIS 版本?我应该升级到更新的 Django 吗?或者我应该降级到较旧的 PostGIS,如果是,如何降级?

更新:This thread 建议即使 Django 1.4 也与 PostGIS 2 不兼容。我可以说服 Postgres.app 使用旧版本吗?还是我应该完全放弃 Postgres.app?

【问题讨论】:

  • 你不能只加载 PostGIS 2.0 附带的 PostGIS 1.x 兼容性脚本吗?
  • 自 Django 1.5(目前处于测试阶段)以来,GeoDjango 支持 PostGIS 2.0+。如果您有兴趣并想尝试一下,我们(在 BitNami 中)最近发布了一个安装程序 [bitnami.org/stack/djangostack],其中包括 Python、Django 1.5 和带有 PostGIS 2.0.1 的 PostgreSQL。它是独立的,不会干扰您系统中的任何其他内容。

标签: django postgis postgres.app


【解决方案1】:

GeoDjango 1.5 已发布,支持 PostGIS 2.0。此时,您最好的选择是升级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2016-04-29
    • 1970-01-01
    • 2021-01-11
    • 2012-10-01
    • 2021-02-15
    • 2022-12-11
    相关资源
    最近更新 更多