PostGIS
PostGIS は PostgreSQL データベースに地理情報オブジェクトのサポートを追加します。このドキュメントでは PostGIS のインストールとテンプレート PostGIS データベースの作成について説明します。PostgreSQL は既にインストールされていることを前提とします。まだインストールしていない場合は PostgreSQL のページを見てください。
目次
インストール
PostGIS 拡張のインストール
Since PostgreSQL 9.1 から PostGIS をインストールしたら空間データベースの postgis 拡張を有効にすることが推奨されています [1]:
$ psql -- verify available extensions SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' ; -- install extension for spatial database mygisdb \c mygisdb CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION postgis_tiger_geocoder;
PostGIS 拡張を使用する場合、下のテンプレート PostGIS データベースの作成は不要になります。
postgis 拡張をアップグレード:
$ psql ALTER EXTENSION postgis UPDATE TO "2.1.0";
postgis_template で作成した空間データベースを移行したい場合、データベースを dump してから空間データベースを再作成してデータベースをリストアしてください。詳しくは http://www.postgis.net/docs/postgis_installation.html#hard_upgrade を見てください。
テンプレート PostGIS データベースの作成
postgres ユーザーに切り替えてください:
$ su # su - postgres
PostgreSQL にアクセスするためのスーパーユーザーを作成していない場合、ここですると良いでしょう。ユーザーに権限を与えるように要求されます:
$ createuser [username]
"template_postgis" という名前の新しいデータベースを作成:
$ createdb -O [username] template_postgis -E UTF-8
PostGIS はデータベース上に pl/pgSQL 言語のインストールを必要とします:
$ createlang plpgsql template_postgis
PostgreSQL の PostGIS 空間タイプと空間参照システムをロードしてください。PostGIS には "postgis.sql" と "spatial_ref_sys.sql" が含まれており /usr/sharepostgresql/contrib/postgis-2.1/
に存在します:
$ psql -d template_postgis -f /usr/share/postgresql/contrib/postgis-2.1/postgis.sql $ psql -d template_postgis -f /usr/share/postgresql/contrib/postgis-2.1/spatial_ref_sys.sql
実際のテンプレートにするには:
$ psql UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis';
テンプレートから PostGIS データベースを作成
新しい PostGIS データベースを作成する場合はテンプレートを予約します。PostgreSQL のスーパーユーザーで以下のコマンドを実行することで新しいデータベースが作成されます:
$ createdb -T template_postgis [new_postgis_db]
PostGIS が json_tokener_error で動作しなお
拡張として postgis を追加した場合に発生します。libjson-c パッケージが変更されたのに PostGIS が新しいバージョンに対応した安定版をリリースしていない場合にこの問題が発生します。バグレポートが こちら にあります。
postgis の PKGBUILD をダウンロードしてバージョンを '2.1.0rc1' に変更してください。