st_geometry para guardar examples ejemplos descargar curso coordenadas django postgresql postgis geodjango

django - para - postgis sql



Postgis/Geodjango: no se puede determinar la versiĆ³n de PostGIS para la base de datos (5)

Estoy intentando lanzar una aplicación GeoDjango. He instalado Postgres & PostGIS usando brew en Lion. Creé una base de datos usando template_postgis: createdb -T template_postgis test .

Cuando ejecuto python manage.py syncdb , obtengo el siguiente error:

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

¿Cómo puedo localizar la fuente del error? He comprobado que el usuario y el paso en la configuración tienen acceso a la base de datos, etc.


Como primer paso de depuración: intente verificar la versión de la plantilla postgis manualmente, por ejemplo, en la línea de comandos conéctese a su base de datos con la psql test , y consulte con select postgis_lib_version(); . Esta función debe definirse en template_postgis y devolver algún número. Ejemplo de salida:

$ psql test psql (9.0.4) Type "help" for help. test=# select postgis_lib_version(); postgis_lib_version --------------------- 1.5.2 (1 row)

Si ocurre un error, sabes que el error está en la base de datos.


La solución para mí fue ejecutar lo siguiente en el terminal de Postgres:

psql database_name database_name=# CREATE EXTENSION postgis;

Si obtiene ERROR: relation "spatial_ref_sys" already exists , ejecute lo siguiente antes de CREATE EXTENSION postgis :

drop table spatial_ref_sys; drop table geometry_columns;



Solo agrega tu configuración.py tu versión correcta de Postgis:

POSTGIS_VERSION = (2, 0, 3)


Y en caso de que la selección anterior devuelva un error, puede ser que una versión particular de PostGIS se haya instalado en esa base de datos, que haya actualizado Postgres.app a una versión más nueva, que incluya una versión más nueva de PostGIS. Por ejemplo, después de la reciente actualización de Postgis 2.0 a 2.1

En ese caso, puede realizar una migración después de copiar algunas bibliotecas, como se describe en este ticket.