SchemaSpyを使ってRedashのテーブル定義確認を捗らせる

Redashのテーブル定義を確認しようとしたとき、 psql コマンドでも十分だけど、何か便利なツールを探してみたらSchemaSpyがよさそうだったのでメモ。

SchemaSpy • Database Documentation Built Easy.

ツール自体はJavaで書かれているようだけど、Dockerイメージが公開されているので以下の記事を参考にしてDocker上で動作させた。

qiita.com

使ってみる

Redashの検証環境を構築するときはDocker Composeを使っているので、Redashの docker-compose.production.yml を以下のように変更した。

diff --git a/docker-compose.production.yml b/docker-compose.production.yml
index f0b9812d..d4911ae0 100644
--- a/docker-compose.production.yml
+++ b/docker-compose.production.yml
@@ -50,3 +50,10 @@ services:
     links:
       - server:redash
     restart: always
+  schemaspy:
+    depends_on:
+      - postgres
+    image: schemaspy/schemaspy:snapshot
+    command: /entrypoint.sh -t pgsql -host postgres:5432 -db postgres -u postgres -hq
+    volumes:
+      - $PWD/schemaspy/output:/output

これでRedashを起動すると schemaspy/output ディレクトリーに結果が出力される。

index.html を開くと、テーブルの定義やER図が表示されて便利。

画面サンプル

テーブル一覧

f:id:ariarijp:20171216231344p:plain

テーブル定義

f:id:ariarijp:20171216231406p:plain

ER図

f:id:ariarijp:20171216231452p:plain

まとめ

DockerイメージになっているとJREをインストールしたりしなくて良いので楽。

もちろんRedash以外でも使えるツールなので、テーブル定義をさっと確認したいときは便利だと思う。