GeoDjango: syncdb не удалось создать PointField
Я использую Django 1.2 и последнюю версию Postgres.app на MacOS 10.7. Когда я бегу 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, которые я использую заранее для создания пространственной базы данных (после возникновения этой проблемы ранее) - ни одна из них не выдает никаких ошибок, что говорит о том, что PostGIS настроен нормально:
$ psql -d stores -U storeadmin
# CREATE EXTENSION postgis;
# ALTER TABLE geometry_columns OWNER TO storeadmin;
# ALTER TABLE spatial_ref_sys OWNER TO storeadmin;
Поработав немного о поиске в Google, мне интересно, возможно, Postgres.app поставляется с версией PostGIS, несовместимой с Django 1.2? Должен ли я перейти на более новую версию Django? Или я должен перейти на более раннюю версию PostGIS, и если да, то как?
ОБНОВЛЕНИЕ: Эта ветка предполагает, что даже Django 1.4 не совместим с PostGIS 2. Могу ли я убедить Postgres.app использовать более старую версию? Или я должен отказаться от Postgres.app в целом?
1 ответ
GeoDjango 1.5 был выпущен с поддержкой PostGIS 2.0. На данный момент ваш лучший вариант - обновить.