PostgreSQLのER図をコマンド一発で生成したい

1 min read読了の目安(約1100字

概要

ガツガツ開発してみたけど
ER図とか特に管理してなかったから俯瞰した図はねえぜ。
みたいなケースってありますよね・・・

そんな時いい感じにER図自動で生成されてほしいなぁ。というそれだけのお話。

方法

以前MySQL使ってた時はdbdiagram.ioにペコっと貼り付けて生成とかさせてたけど

https://dbdiagram.io/home

今回PostgreSQL使うことになり
コマンドラインでDDL出力->dbdiagram.ioにコピペでER図出力しようとしたら
結構syntax対応されてなくてたくさんエラー出てきた・・・・

ので、ちょろちょろっとググってみるとschemaspyなるものが良さそうだったので使ってみた

やり方

DBにアクセスできる状態で以下コマンド打つだけ

docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:6.1.0 -t pgsql -host localhost:5432 -db database_name -u user -p -debug

以下引数は各環境に応じて変えてくだせぇ

  1. -host
    1. ホスト名
  2. -db
    1. DB名
  3. -u
    1. ユーザー名
  4. -p
    1. パスワード

検証

コマンド実行直下のschemaディレクトリに以下のようなファイルがたくさんできてる

$ tree -L 1 schema
schema
├── db_name.public.xml
...
└── tables

index.htmlファイルを開いてみると・・・

open schema/index.html

なんか素敵なUIでテーブル一覧が確認できる!!!

リレーションが表示されたER図も表示される!
(マスクしすぎて何が何かわからん感じですがw

テーブルも検索できて
1層までのリレーションだけ見たりもできるのですごく便利!

まとめ

cicdに噛ませて
firebase hostingにあげといて
社内からのみ見れるようにしたら幸せかも🥸