読者です 読者をやめる 読者になる 読者になる

PostgreSQLのどのバージョンを使うか

PostgreSQLをこれから使うなら、ふつう最新版(いまなら9.6)を選択するとおもう。

しかし落とし穴があって、

9.6はデファクトスタンダードGUIツールのpgAdmin3が対応していない。公式対応しているのはpgAdmin4だけなのだが、このpgAdmin4が「くそ遅い、機能が足りない使いにくい、動作が不安定」の3重苦で正直使い物にならない。辛くて仕方ない。

Windows版の公式であるEDB社のパッケージにはpgAdmin4が同梱されているが、初めてPostgres触るひとがpgAdmin4から入るといらんところで敷居を感じちゃいそうでまずいとおもう。

いちおうpgAdmin3も動くんだけど、起動時に毎回「対応していません」ってメッセージが出るんだよね。事情を知らない偉いひとに見つかったら速攻で使用禁止にされそう。

 

というかPostgresって意外と周辺ツールがバージョン依存することがあるようで、知らないところで変な動作してたとかないか不安が残る。

先日GitLab.comが操作ミスで本番データベース喪失した事故があったが、あれ 9.6のデータベースを9.2のpg_dumpでバックアップ取ってたら実は動いてなくてバックアップファイルの中身が空っぽだったとか。こんな近いバージョンでも致命的なことがあるのかと震える。

Centos7でPostgresを yumインストールすると9.2が入るんだよね。そのあと9.6を入れ直したとして、もし9.2のバイナリが残っていてそっちのpg_dumpを使われてしまってたら同じ事故を起こす可能性があるってことだ。恐ろしい…。

 

まあそれはともかく、WindowsでpgAdminを使わないもしくはA5M2または有料ツールを使うのなら9.6でもかまわないのかもしれない。

Amazon Auroraも9.6ベースだし、Herokuのデフォルトも9.6だし、周辺ツールを合わせる意味でも9.6を選択すべきだろう。

 

だけど個人で使うレベルなら9.5にしておく方が良かったのかもしれない。9.5と9.6の大きな違いはパラレルクエリくらいなのであんまり差はない。Json型がまったく不要なら9.2でもいいのかもしれない。9.2ならphpPgAdminも対応してるんだよね。

 なんらか理由があるならともかく、周辺ツールが追いついてくるまでひとつふたつ古いバージョンを使ってるほうが小さな幸せが得られるかもしれない。

 

2017.3.11 追記

phpPgAdmin3は。v1.22.2なら警告でないみたい。こちらは昨年末に更新されてた。
2017.2月にリリースされたphpPgAdmin4の1.2、ちゃんとつかってないけど不安定だったところがだいぶマシになってる感じ。我慢すれば使えそう。