PostGIS'te yeni bir 'gis' veritabanı nasıl oluşturulur?


24

PostGIS'te yeni bir veritabanı oluşturmak istiyorum, böylece mevcut veritabanı kullanılırken içine bir şeyler yükleyebilirim. Dokümanlara göre

Bazı PostGIS paketlenmiş dağıtımları (özellikle PostGIS için Win32 yükleyicileri> = 1.1.5) PostGIS işlevlerini template_postgis adlı bir şablon veritabanına yükler. Template_postgis veritabanı PostgreSQL kurulumunuzda mevcutsa, kullanıcılar ve / veya uygulamaların tek bir komut kullanarak mekansal olarak etkinleştirilmiş veritabanları oluşturması mümkündür.

Benim durumumda bu öyle görünmüyor:

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

Geçmişte, birincil gisveritabanını kopyalamak , sonra tüm tabloların içeriğini silmekle uğraşmıştım. Daha iyi bir yol olmalı. Yanlışlıkla düşürürseniz ne yaparsınız?


Yanıtlar:


42

Hangi sürümünü PostGISkullandığınızı bilmiyorum ama> 2.0İlk önce şunu kullanarak giriş yaptım psql:

psql -U postgres

Sonra bir veritabanı oluşturuyorum:

CREATE DATABASE example_gis;

Sonra bu veritabanına giriyorum:

\connect example_gis;

Ve sonra bu emri yerine getiriyorum:

CREATE EXTENSION postgis;

Bu, tüm uzamsal işlevleri ve bu veritabanındaki nesne türlerini oluşturur.  


benim sistemimde değil, tüm büyük harfleri CREATE EXTENSION POSTGISyazmam gerekiyor CREATE EXTENSION postgis.
SIslam

5

@ Novicegis'in bağlantısını takiben, bu benim için postgis 1.5 ile çalıştı:

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

(Bağlantılı talimatlar 'hstore' uzantısını içermiyordu.)


2

Konsolda "template_postgis" oluşturmalısınız. Tüm hatalar konsolda görüntülenir.

Bu talimatları kullanabilirsiniz: "template_postgis" oluşturmak istiyorsanız http://linfiniti.com/2012/05/installing-postgis-2-0-on-ubuntu/

Mesela ben yaparım:

//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

Hatalı postgis kurarken bu mesajı aldım


"Rtpostgis.sql" dosyası bulunmadığı sürece tüm postgis 1.5 ile çalıştı. Önemli mi?
Steve Bennett

Bence, postgis 1.5 en iyi yoldur. bağlantı - resmi evraklar
acemi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.