はじめに
PostgreSQL10でGeometory型を使うまでに少しハマったため、メモを残しておく。
実行環境
・Windows 10 Pro
・PostgreSQL 10.13
・PostGIS 2.5
今回のやる事
1.拡張機能の確認。
2.指定のデータベースに [postgis] 機能拡張。
3.Geometory型が作れるかどうか確認。
1.拡張機能の確認
■以下のpsqlコマンドより、機能拡張を行いたいデータベースに接続する。
psql -d [データベース名] [ユーザー名]
※Windows10の場合、psqlコマンドでユーザ名を省略するとOSのログインユーザ名が使われる様なので、明示しなければいけない。
(そもそも [psql] コマンドが使えない場合はPathの設定が必要。以下のサイトを参考に!)
https://www.dbonline.jp/postgresql/install/index3.html
■以下のコマンドより、インストール可能な拡張機能 & インストール済みの拡張機能を確認。
[データベース名]=# select * from pg_available_extensions;
実行結果
※赤枠(installd_version)の部分に何かしらの数字が入っていれば "インストール済み" である。
2.指定のデータベースに [postgis] 機能拡張
■以下のコマンドより、指定のデータベース&スキーマに [postgis] 機能拡張。
[データベース名]=# create extension postgis;
『CREATE EXTENSION』と表示されれば拡張完了!
■以下のコマンドより再度確認。
[データベース名]=# select * from pg_available_extensions;
(終わってから気付いたけど、拡張機能のインストールは**『pgAdmin』** からでも可能で、実際そっちの方が操作は簡単。)
3.Geometory型が作れるかどうか確認
■[postgis]機能拡張をしたデータベースで、以下のCreate文を実行してみる。
CREATE TABLE sample_tb (
gid SERIAL PRIMARY KEY,
geom GEOMETRY(POINT, 4326)
);
無事作成できたら、Geometory型のカラムを持てているため[postgis] 機能拡張は使えている。
補足
機能拡張するDBを、今回指定したところとは違うDBにして同じ事を試してみたが、『ERROR: 作成先のスキーマが選択されていません』となってしまった。
試しにスキーマを選択して [postgis] 機能拡張し、インストールできている事も確認できたが、Geometory型を作ろうとすると失敗してしまい、うまく拡張モジュールを読み込めていない様だった。
まとめ
今回はPostgreSQLに空間データを扱うための拡張機能であるPostGISを追加した。
補足に書いてあことは、また気が向いた時に調べてみたいと思います。