document
Docker
Database

dockerを使って簡単にER図を作ってみる

More than 1 year has passed since last update.


SchemaSpyをdocker内で使ってER図を作る


SchemaSpyとは

https://github.com/schemaspy/schemaspy

SchemaSpyとは、現在のSchemaを元にER図を作るライブラリです。

現在の最新バージョンは6.0.0 RC2です。

公式ドキュメントは以下にあります。

http://schemaspy.readthedocs.io/en/latest/


docker内で使ってみる

SchemaSpyではJavaとGraphvizに依存していますので、ローカル環境にインストールする必要があるのですが、こういう場合は最近ではdockerコンテナ内で構築してしまうようにしています。

docker内に環境をまとめることで、どのマシンでもローカルの環境に依存することなく独立して構築することができるので他人に渡すときにもとても楽になります。

Dockerfileのリポジトリは以下に公開しています。

https://github.com/cimadai/schemaspy

また、Docker HubでAutomation buildを設定していますので、以下のリポジトリからpullすることができます。

https://hub.docker.com/r/cimadai/schemaspy/


使い方

データベース名がpostgres、ユーザー名がpostgres、パスワードは空、というデータベースの場合、以下のコマンドでER図を生成できます。

docker run --rm -it -e DB_HOST=<YOUR_DB_HOST> \

-v /path/to/output:/output cimadai/schemaspy

上記を実行すると、/path/to/output 内に「postgres」というディレクトリが生成されており、その中にindex.htmlが生成されています。

下図のようなリレーション図などが自動生成されています。便利ですね。

image.png

他にも生成されるものはありますので、公式サンプルを参照してください。

http://schemaspy.org/sample/index.html


別のデータベースを参照したい

環境変数名
初期値
概要

JDBC_DRIVER_PATH
postgresql-42.2.1.jar
対象とするDBに接続するためのjdbcライブラリ

DATABASE_TYPE
pgsql
何のDBを参照するか。ora (Oracle)やmysql (MySQL)、db2などがあります。

DB_HOST
localhost
対象DBのホスト名(or IP Address)

DB_NAME
postgres
対象DB名

DB_USER
postgres
対象DBのユーザー名

DB_PASS
(empty)
対象DBのパスワード


参考にした記事

https://qiita.com/genzouw/items/23cd0119715403e6e110