2012-05-14 3 views
11

Ich versuche eine GeoDjango App einzurichten, um an earlier problem zu testen, die ich hatte. Ich habe eine PostgreSQL-Datenbank, erstellt ein neues Projekt Django und App einrichten, aber wenn ich ./manage.py syncdb versuche ich diese:Meine PostGIS-Datenbank sieht gut aus, aber GeoDjango denkt anders ... warum?

django.core.exceptions.ImproperlyConfigured: Kann nicht PostGIS-Version für Datenbank „django_geotest“ bestimmen. GeoDjango benötigt mindestens PostGIS Version 1.3. Wurde die Datenbank aus einer räumlichen Datenbankvorlage erstellt?

Was ich verstehe nicht, wie ich das alles durch die Installation von GeoDjango Anforderungen zuvor gewesen war, und erstellt diese django_geotest Datenbank, indem Sie diese:

$ createdb -T template_postgis django_geotest 

Und es sieht aus wie die Datenbank korrekt ist ein:

django_geotest=# SELECT PostGIS_full_version(); 
            postgis_full_version           
------------------------------------------------------------------------------------------------------- 
POSTGIS="1.5.3" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.3" USE_STATS 
(1 row) 

die Datenbank beschreiben, bekomme ich diese:

django_geotest=# \d     
      List of relations 
Schema |  Name  | Type | Owner 
--------+-------------------+-------+------- 
public | geography_columns | view | phil 
public | geometry_columns | table | phil 
public | spatial_ref_sys | table | phil 
(3 rows) 

So jetzt bin ich fest, was als nächstes zu versuchen ... Mein Wissen über Postgresql und seine Vorlagen usw. ist nicht so toll. Irgendwelche Ideen? Vielen Dank.

+0

Ich hatte das gleiche Problem vor, aber ich kann nicht herausfinden wie ich es gelöst habe. Ich denke, ich habe versucht, dies: http://StackOverflow.com/Questions/5907672/Installation-error-Overy-Ty-Installation-a-Gis-Application-using-Geodjango – dannyroa

+1

hatte das gleiche Problem mit PostgreSQL 9.3 und PostGIS 2.1 installiert unter OS X 10.9.1 mit Homebrew, musste ich nur 'POSTGIS_VERSION = (2, 1)' zu 'settings.py' hinzufügen. Es konnte einfach nicht die Einstellung – BenjaminGolder

+0

@BenjaminGolder lesen - das löste mein Problem auch ... Schlagen Sie vor es sollte die richtige Antwort sein? – Erve1879

Antwort

18

Ich hatte das gleiche Problem mit PostgreSQL 9.3 und PostGIS 2.1 unter OS X 10.9.1 mit Homebrew installiert.

Für diese besondere Ausgabe, die Sie brauchen nur diese Zeile hinzufügen: für PostGIS Version settings.py

POSTGIS_VERSION = (2, 1) 

mit dem Komma getrennt Nummer.

Ich bin mir nicht sicher warum, aber Django hat Probleme beim Lesen der Versionsinformationen von PostGIS.

+0

Dies als die richtige Antwort zu markieren, nur weil es scheint für ein paar Leute zu arbeiten; Ich habe es nicht ausprobiert. Vielen Dank! –

+0

Wo ist settings.py? – Sekai

1

Ich hatte das gleiche Problem vor ein paar Monaten. Ich musste die template_database und die main db erneut erstellen. From this link.

5

Immer wenn ich diesen Fehler in einer ähnlichen Situation habe (d. H. Wenn die Datenbank eine vollkommen gültige PostGIS-Datenbank zu sein scheint), hat sich ein Fehler in DATABASES in settings.py ergeben. Es ist tatsächlich Authentifizierung bei der Verbindung mit der Datenbank fehlgeschlagen, aber es passiert, dass die erste Sache, die die Datenbank berührt beim Starten von meinem GeoDjango-Projekt ist postgis_lib_version Anruf von django/contrib/gis/db/backends/postgis/operations.py

+0

Dies ist die beste Antwort. Siehe Ticket https://code.djangoproject.com/ticket/24862#ticket – Bryce

Verwandte Themen