¿Cómo crear una nueva base de datos 'gis' en PostGIS?

21

Me gustaría crear una nueva base de datos en PostGIS, para poder cargar cosas mientras se usa la base de datos actual. Según la documentación

  

Algunas distribuciones empaquetadas de PostGIS (en particular, el Win32   Los instaladores para PostGIS > = 1.1.5) cargan las funciones PostGIS en un   base de datos de plantillas llamada template_postgis. Si el template_postgis   La base de datos existe en su instalación de PostgreSQL, entonces es posible   para usuarios y / o aplicaciones para crear bases de datos habilitadas espacialmente   usando un solo comando.

En mi caso, esto parece no ser así:

$ createdb -T template_postgis my_spatial_db
createdb: database creation failed: ERROR:  template database "template_postgis" does not exist

En el pasado he intentado copiar la base de datos primaria gis y luego eliminar el contenido de todas las tablas. Tiene que haber una mejor manera. ¿Qué haces si accidentalmente lo sueltas?

    
pregunta Steve Bennett 11.09.2013 - 02:03

3 respuestas

4

Siguiendo el enlace de @ novicegis, esto me funcionó con postgis 1.5:

db=gis
sudo -su postgres <<EOF
createdb --encoding=UTF8 --owner=ubuntu $db
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis_comments.sql
psql -d $db -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"
psql -d $db -c "GRANT ALL ON geometry_columns TO ubuntu;"
psql -d $db -c 'create extension hstore;'
EOF

(Las instrucciones vinculadas no incluían la extensión 'hstore').

    
respondido por el Steve Bennett 14.09.2013 - 12:45
38

No sé qué versión de PostGIS está usando, pero en > 2.0 , primero inicio sesión con psql :

psql -U postgres

Luego creo una base de datos:

CREATE DATABASE example_gis;

Luego me muevo a esta base de datos:

\connect example_gis;

Y luego ejecuto la recomendación:

CREATE EXTENSION postgis;

Esto crea todas las funciones espaciales y tipos de objetos en esta base de datos.

    
respondido por el djq 15.09.2013 - 01:00
2

Debes crear "template_postgis" en la consola. Todos los errores se muestran en la consola.

Puede usar estas instrucciones: enlace si desea crear "template_postgis".

Por ejemplo, yo:

//install postgis
su oleg
sudo apt-add-repository ppa:sharpie/for-science  
sudo apt-add-repository ppa:sharpie/postgis-nightly
sudo apt-get update
sudo apt-get install postgresql-9.1-postgis

// create template
sudo su
su postgres
createdb -E UTF8 template_postgis2
createlang -d template_postgis2 plpgsql
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis2'"

psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql
psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/rtpostgis.sql
psql -d template_postgis2 -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis2 -c "GRANT ALL ON geography_columns TO PUBLIC;"
psql -d template_postgis2 -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
createdb osm -T template_postgis2

Recibí este mensaje cuando instalé postgis con errores

    
respondido por el novicegis 11.09.2013 - 12:45

Lea otras preguntas en las etiquetas