PostGISで新しい「gis」データベースを作成する方法は?


24

PostGISで新しいデータベースを作成したいので、現在のデータベースが使用されている間にそれをロードできます。ドキュメントによると

PostGISのパッケージ化されたディストリビューション(特にPostGIS 1.1.5以降のWin32インストーラー)は、PostGIS関数をtemplate_postgisと呼ばれるテンプレートデータベースにロードします。PostgreSQLインストールにtemplate_postgisデータベースが存在する場合、ユーザーやアプリケーションは、単一のコマンドを使用して空間的に有効化されたデータベースを作成できます。

私の場合、これはそうではないようです:

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

過去には、プライマリgisデータベースをコピーしてから、すべてのテーブルの内容を削除することをいじりました。より良い方法がなければなりません。誤ってドロップした場合はどうしますか?


回答:


42

私は何のバージョンがわからないPostGIS使用していますが、>で2.0使用してI最初のログインpsql

psql -U postgres

次に、データベースを作成します。

CREATE DATABASE example_gis;

次に、このデータベースに移動します。

\connect example_gis;

そして、私は賞賛を実行します:

CREATE EXTENSION postgis;

これにより、このデータベースにすべての空間関数とオブジェクトタイプが作成されます。  


私のシステムでは、CREATE EXTENSION POSTGISではなくすべて大文字で書く必要がありCREATE EXTENSION postgisます。
イスラム教16

5

@novicegisのリンクに従って、これは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

(リンクされた命令には「hstore」拡張子は含まれていません。)


2

コンソールで「template_postgis」を作成する必要があります。すべてのエラーがコンソールに表示されます。

「template_postgis」を作成する場合は、次の手順を使用できます。http//linfiniti.com/2012/05/installing-postgis-2-0-on-ubuntu/

たとえば、私は:

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

エラーのあるpostgisをインストールしたときにこのメッセージが表示されました


"rtpostgis.sql"ファイルがないことを除いて、すべてはpostgis 1.5で機能しました。大切ですか?
スティーブベネット

postgis 1.5が最良の方法だと思います。 リンク -公式文書
初心者
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.