4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PostgreSQL10へのPostGIS機能追加

Last updated at Posted at 2020-08-29

はじめに

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;

実行結果
Qiita-no006_img01.jpg
※赤枠(installd_version)の部分に何かしらの数字が入っていれば "インストール済み" である。

下の方に進み [postgis] あることを確認。
Qiita-no006_img02.jpg

2.指定のデータベースに [postgis] 機能拡張

■以下のコマンドより、指定のデータベース&スキーマに [postgis] 機能拡張。

[データベース名]=# create extension postgis;

 『CREATE EXTENSION』と表示されれば拡張完了!

■以下のコマンドより再度確認。

[データベース名]=# select * from pg_available_extensions;

実行結果
Qiita-no006_img03.jpg
インストール済みとなっている事を確認。

(終わってから気付いたけど、拡張機能のインストールは**『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を追加した。
補足に書いてあことは、また気が向いた時に調べてみたいと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?