Help us understand the problem. What is going on with this article?

DockerでサクッとDBからER図を作成する

More than 3 years have passed since last update.

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ディレクトリにマウントすることで追加できるらしいですが未検証)

kamukiriri
パソコンとインターネットを使ってニホンエンをマイニングしています
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away