2012-05-14 10 views
11

Estoy tratando de configurar una aplicación GeoDjango para probar an earlier problem que estaba teniendo. He creado una base de datos PostgreSQL, crea un nuevo proyecto Django y aplicación, pero cuando intento ./manage.py syncdb me sale esto:Mi base de datos PostGIS se ve bien, pero GeoDjango piensa lo contrario ... ¿por qué?

django.core.exceptions.ImproperlyConfigured: No se puede determinar la versión de la base de datos PostGIS "django_geotest". GeoDjango requiere al menos PostGIS versión 1.3. ¿La base de datos se creó a partir de una plantilla de base de datos espacial?

Qué no entiendo como he estado previamente a través de toda la instalación de los requisitos de GeoDjango, y creé esta base de datos django_geotest al hacer esto:

$ createdb -T template_postgis django_geotest 

y parece que la base de datos es correcta estableció:

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) 

al describir la base de datos, me sale esto:

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) 

Así que ahora estoy atascado en cuanto a qué probar a continuación ... Mi conocimiento de postgresql y sus plantillas, etc. no es tan bueno. ¿Algunas ideas? Gracias.

+0

Tuve el mismo problema antes pero no puedo entender cómo lo resolví Creo que probé esto: http://stackoverflow.com/questions/5907672/installation-error-while-trying-to-install-a-gis-application-using-geodjango – dannyroa

+1

tenía el mismo problema con PostgreSQL 9.3 y PostGIS 2.1 instalado en OS X 10.9.1 usando homebrew, todo lo que tenía que hacer era agregar 'POSTGIS_VERSION = (2, 1)' a 'settings.py'. Simplemente no podía leer la configuración – BenjaminGolder

+0

@BenjaminGolder - eso resolvió mi problema también ... ¿Sugerir que debería ser la respuesta correcta? – Erve1879

Respuesta

18

Tuve el mismo problema con PostgreSQL 9.3 y PostGIS 2.1 instalados en OS X 10.9.1 usando homebrew.

Para este tema en particular, sólo es necesario añadir esta línea:

POSTGIS_VERSION = (2, 1) 

utilizando el número separado por comas para su versión PostGIS a settings.py.

No estoy seguro de por qué, pero Django tiene problemas para leer la información de la versión de PostGIS.

+0

Vamos a marcar esto como la respuesta correcta solo porque parece funcionar para un par de personas; No lo he intentado. ¡Gracias! –

+0

¿Dónde está settings.py? – Sekai

1

Tuve el mismo problema hace un par de meses. Tuve que volver a crear la plantilla_database y el db principal nuevamente. From this link.

5

Cuando tengo este error en una situación similar (es decir, cuando la base de datos parece ser una base de datos PostGIS perfectamente válida) ha resultado que ha habido un error en DATABASES en settings.py. En realidad es la autenticación cuando se conecta a la base de datos, pero sucede que lo primero que toca la base de datos al iniciar mi proyecto GeoDjango es la llamada postgis_lib_version de django/contrib/gis/db/backends/postgis/operations.py

+0

Esta es la mejor respuesta. Ver ticket https://code.djangoproject.com/ticket/24862#ticket – Bryce

Cuestiones relacionadas