2012-11-30 5 views
0

J'utilise Django 1.2 et la dernière version de Postgres.app sur MacOS 10.7. Quand je lance manage.py syncdb pour créer une base de données avec un PointField en elle, je reçois l'erreur suivante:GeoDjango: syncdb ne parvient pas à créer 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" 

Ce sont les Postgres commandes que j'utilise au préalable pour créer une base de données spatiales (après avoir this problem précédemment) - aucun d'entre eux produisent des erreurs, ce qui suggère que PostGIS est bien mis en place:

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

Après avoir fait un peu de recherche sur Google, je me demande si peut-être Postgres.app est livré avec une version de PostGIS qui est incompatible avec Django 1.2 ? Dois-je passer à un nouveau Django? Ou devrais-je rétrograder à un PostGIS plus ancien, et si oui, comment?

MISE À JOUR: This thread suggère que même Django 1.4 n'est pas compatible avec PostGIS 2. Puis-je persuader Postgres.app d'utiliser une version plus ancienne? Ou devrais-je abandonner complètement Postgres.app?

+0

Ne pouvez-vous pas charger les scripts de compatibilité PostGIS 1.x fournis avec PostGIS 2.0? –

+0

Aussi depuis Django 1.5 (actuellement en version bêta) GeoDjango supporte PostGIS 2.0+. Dans le cas où vous êtes intéressé et que vous voulez essayer, nous avons récemment publié un programme d'installation [http://bitnami.org/stack/djangostack] qui inclut Python, Django 1.5 et PostgreSQL avec PostGIS 2.0.1. Il est auto-contenu et n'interférera avec rien d'autre dans votre système. – kaysa

Répondre

0

GeoDjango 1.5 est disponible avec le support de PostGIS 2.0. À ce stade, votre meilleure option est de mettre à niveau.

Questions connexes