SchemaSpyというDBのスキーマを解析してテーブルの一覧やER図を出力してくれるツールがあります。
このツールの公式Dockerイメージが公開されており、非常に使いやすいので紹介させて頂きます。
https://hub.docker.com/r/schemaspy/schemaspy/
コマンド
docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:snapshot \
-t <DB種類> -host <DBホスト名/IP>:<ポート> -db <DB名> -u <DBユーザー名> -p <DBパスワード>
このコマンドを実行するとカレントディレクトリのschemaディレクトリに解析結果のHTMLが出力されます。
(コンテナは自動的に終了します)
docker run のオプション
-v
オプションで指定したoutputのマウント先が出力先になります。
複数ファイル出力されるので、既存フォルダに出力しないことをオススメします。
また、--net="host"
オプションを指定することで、ホストマシンと同じようにDBに接続できるようになります。
注意点
2017/07/28現在、DockerHubにsnapshotタグのイメージしか上がっていないため、
イメージ名は明示的にschemaspy/schemaspy:snapshot
と指定しましょう。
(省略すると自動でlatestになる)
SchemaSpyのオプション
-t
で指定できるDBの種類は、デフォルトだと以下の4つになります。
- mysql
- mariadb
- pgsql (PostgreSql)
- jtds (SQL Server等)
SchemaSpyはJDBCドライバでDBに接続しているので、ドライバを追加することで接続先を増やすこともできます。
(docker run の-v
でdriversディレクトリにマウントすることで追加できるらしいですが未検証)