ShemaSpy はDBのテーブル一覧やテーブル定義書などのドキュメントを html でかんたん出力できるツールです。
以下のようなドキュメントを出力できます。
使い方
DBは踏み台経由のことが多いので、ポートフォワーディングしながら接続する方法を記載します。踏み台が不要の場合は適宜読み替えてください。
構成
ディレクトリ構成
.
├── output/ # 出力結果を格納
└── schemaspy.properties # 設定ファイル
設定ファイル
今回は DB に MySQL を指定してます。他の DB にも色々対応しているので詳しくは以下のリンクを参照。
# データベースの種類
schemaspy.t=mysql
# ホスト名
schemaspy.host=host.docker.internal # コンテナ内からlocalhostに接続する場合のホスト名
# ポート
schemaspy.port=33306 # ポートフォワーディングのポート
# データベース名
schemaspy.db=[DB-NAME]
# ユーザー名
schemaspy.u=[YOUR-USERNAME]
# パスワード
schemaspy.p=[YOUR-PASSWORD]
# スキーマ名
schemaspy.s=[DB-SCHEMA-NAME]
ポートフォワード
以下のコマンドでセッションを確立します。ポートフォワードが不要であればこの手順はスキップで OK です。
ssh -NL 33306:[DATABASE-IP]:3306 [YOUR-USERNAME]@[踏み台サーバのホスト]
Nオプション: セッションを確立状態にする
Lオプション: ローカルポートフォワーディングする。
実行コマンド
テーブル数が多いと完了まで数時間かかります。気長に待ちましょう。
docker run --rm --net="host" \
-v "./output:/output" \
-v "./schemaspy.properties:/schemaspy.properties" \
schemaspy/schemaspy:latest --debug