¿Por qué la instalación de PostGIS no crea template_postgis?

36

Seguí esta ruta para la instalación de PostgreSQL y PostGIS:

Ahora, cuando inicio pgAdmin e intento crear una nueva base de datos PostGIS, no hay template_postgis para usar en Template.


He intentado ir a otra ruta, que es descargar el paquete PostgreSQL directamente desde PostgreSQL. Esto instala el servidor y le permite usar StackBuilder para descargar e instalar PostGIS. Esto no soluciona mi problema.

Michael Markieta
fuente

Respuestas:

32

Puede crear la plantilla con bastante facilidad si no está allí automáticamente. Aquí hay una descripción para ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-kármico-koala /

Esta es la parte esencial:

sudo su postgres
createdb template_postgis
createlang plpgsql template_postgis
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql

En Precise Pangolin:

sudo su postgres
createdb template_postgis
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
bajo oscuro
fuente
Extraño ... en el paso 'createlang plpgsql postgistemplate' obtengo un $ "plpgsql" ya está instalado en la base de datos "postgistemplate" ... y luego en el siguiente paso, psql: comando no encontrado
Michael Markieta
Actualización - No hay directorio postgis en / usr / share / path
Michael Markieta
Entonces supongo que está oculto en otro lugar en OSX. ¿Has intentado buscar los archivos?
oscuro
Encontró los archivos, todas las líneas de código se ejecutan sin errores. Pero pgAdmin3 todavía no muestra la plantilla ... Hrmm ... Reinicié mi Mac para ver si eso cambiaría algo, pero aún nada. (extraño ... Tenía esto trabajando en mi Mac antes del cambio a Lion)
Michael Markieta
¿Qué usuario usaste para crear la plantilla y qué usuario estás usando en pgAdmin?
oscuro
29

Desde la versión 2, Postgis se habilita utilizando el sistema de extensión. Para habilitar espacialmente una base de datos, inicie sesión en su base de datos y luego:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

fuente: http://postgis.net/docs/postgis_installation.html

Nota: solo los SUPERUSERSroles tienen la capacidad de crearEXTENSIONS

nickves
fuente
from pgAdmin4: Bases de datos >> {select db} >> Extensiones >> -r-click >> Crear >> Seleccionar de la lista
matt wilkie
6

Tuve problemas similares y terminé instalando el paquete que se encuentra en:

entreprisedb.com

puede seleccionar la instalación de postgis durante la fase de instalación o llamar a 'Application Stack Builder' más adelante. Si la instalación no funciona, seleccione otra carpeta para descargar el instalador postgis (que se llamará algo así como edb_postgis_1_5_pg91.app.zip). Desempaquete el zip e instálelo. Si no funciona, puede reiniciar e intentar nuevamente. En pgAdmin III debe aparecer template_postgis.

Vladtn
fuente
3

La pregunta puede estar desactualizada pero me encontré con el mismo error en OS X Lion. Quizás mi respuesta podría ayudar a otro usuario.

La instalación predeterminada de PostGIS con "generador de pila" fallará. Pero después del primer paso de instalación, puede elegir la carpeta de descarga para PostGIS. Simplemente descárguelo a su escritorio y descomprímalo a mano. Al hacer doble clic en el archivo, se instalará correctamente. Postgis_template ahora está disponible en pgAdmin.

Troll
fuente
1

De acuerdo con la documentación de PostGIS, solo

Algunas distribuciones empaquetadas de PostGIS ... cargan las funciones de PostGIS en una base de datos de plantillas llamada template_postgis.

Entonces, no todas las distribuciones vienen con template_postgis.

Como se dijo en las respuestas existentes, en PostGIS 2.x, es fácil crear o personalizar la plantilla usted mismo creando una base de datos regular llamada template_postgis superusuario y luego creando las extensiones requeridas y opcionales (como pgRouting). Por documentación de PostGIS:

sudo su postgres
createdb template_postgis

psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"

-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"

Además, puede marcar esta base de datos recién creado como una base de datos de plantilla mediante el establecimiento de la datistemplatebandera en la tabla del sistema pg_databasea ture.

psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"

Esto, por ejemplo, evitará que la base de datos de la plantilla se caiga o altere accidentalmente por otros usuarios o usted mismo. (Deberá establecer el indicador en falso si desea realizar cambios en la plantilla).

Luego puede crear una base de datos espacial basada en lo que haya puesto en la plantilla:

createdb -T template_postgis my_spatial_db
hasta
fuente