20 votos

Cómo crear PostGIS plantilla?

Estoy siguiendo un tutorial para la instalación de pgrouting. Sin embargo, no me llega la parte cuando dice

Inicio de pgAdmin y crear una nueva base de datos basada en su plantilla de PostGIS

Donde puedo conseguir este postgis plantilla? Sé que tengo instalado PostGIS el uso de homebrew. Pero no pude encontrar la plantilla. Estoy corriendo macos ahora.

16voto

skittleys Puntos 196

Nuevo Método Con PostgreSQL 9.1

Gracias a los consejos de R. K. a continuación, eché un vistazo a este tutorial y se encontró que para PostgreSQL 9.1 todo lo que necesita hacer es agregar las extensiones postgis y postgis_topology a una base de datos existente mediante el pgAdmin los menús de contexto. Para crear un postgis plantilla, he creado una nueva base de datos llamada template-postgis y, a continuación, añade estas extensiones. Entonces creé mi otra base de datos utilizando esta plantilla. Cuando se utiliza pg_dump me encontré con el tamaño de la exportación era mucho más pequeña, como parece incluir estas líneas y no de volcado de las funciones de extensión:

CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;

Viejo Redundante Método:

Terminé usando el .archivos de sql aquí:

/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql

También, tengo este error cuando me importan un existente de la base de datos PostGIS en una nueva base de datos elaborados a partir de esta plantilla:

ERROR:  type "spheroid" already exists

Así que he seguido las instrucciones aquí y se utiliza ON_ERROR_ROLLBACK=on a configurar la plantilla, después de la creación de una base de datos en blanco llamado "template_postgis":

psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql -v ON_ERROR_ROLLBACK=on

Y luego importados a mi backup de la db, por ejemplo:

psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on

Incluso El Método Anterior:

Hice esto:

createdb -E UTF8 -T template0 template_postgis
createlang -d template_postgis plpgsql
psql --quiet -d template_postgis -f /Applications/Postgres.app/Contents/MacOS/share/extension/postgis--2.0.1.sql

El camino de postgis--2.0.1.sql será diferente dependiendo de su configuración.

15voto

shsteimer Puntos 8749

Si está ejecutando PostgreSQL 9.1+, usted no tiene que molestarse con la plantilla de la base de datos. Sólo tienes que crear una base de datos y, a continuación, en la vista SQL en pgAdmin, tipo y ejecutar

CREATE EXTENSION postgis;

Que espacialmente habilitar la base de datos.

3voto

texai Puntos 178

de hecho, este es el fundamento de la instalación de postgis.

si usted tiene postgis plantilla puede crear una nueva base de datos como :

 createdb -T postgistemplate -O gis gisdb

si usted no tiene, usted puede hacer esto de esta manera:

sudo su postgres
createdb postgistemplate
createlang plpgsql postgistemplate
psql -d postgistemplate -f /usr/share/postgresql-8.2-postgis/lwpostgis.sql
psql -d postgistemplate -f /usr/share/postgresql-8.2-postgis/spatial_ref_sys.sql

usted puede utilizar scripts de bash Debian/Ubuntu - create_template_postgis-debian.sh, aquí

espero te sirva de ayuda...

2voto

Patrick Puntos 116

Que yo recuerde hay algunas secuencias de comandos disponibles para el taller de creación de esas plantilla de bases de datos. También está disponible aquí: https://github.com/pgRouting/pgrouting-contrib/blob/master/scripts/create_templates.sh

El tiempo que necesita para cambiar un par de cosas aquí y allá, porque fue escrito para trabajar para Debian/Ubuntu. Pero sólo puede elegir lo que usted necesita.

2voto

Andrew Puntos 1119
#!/bin/sh
instance_name=$1
psql << EOF
create database $instance_name;
\connect $instance_name
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
EOF

Yo uso este script en bash para ejecutar la creación de la nueva base de datos con postgis habilitado y el nombre dado en la entrada estándar.

Postgres 9.3

PostGIS 2.1.3

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X