1. kamukiriri

    Posted

    kamukiriri
Changes in title
+DockerでサクッとDBからER図を作成する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,28 @@
+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に接続できるようになります。
+
+# SchemaSpyのオプション
+`-t`で指定できるDBの種類は、デフォルトだと以下の4つになります。
+
+- mysql
+- mariadb
+- pgsql (PostgreSql)
+- jtds (SQL Server等)
+
+SchemaSpyはJDBCドライバでDBに接続しているので、ドライバを追加することで接続先を増やすこともできます。
+(docker run の`-v`でdriversディレクトリにマウントすることで追加できるらしいですが未検証)