JavaScriptを有効にしてください

【Docker】SchemaSpy を使って自動的にER図を生成する

 ·   ·  ☕ 1 分で読めます

【Docker】SchemaSpy を使って自動的にER図を生成する

Docker で SchemaSpy を使って自動的にER図を生成する。

注意
※2022/10/10追記
この記事の内容が動作しなくなっています。
【Docker】SchemaSpy を使って自動的にER図を生成する(2022/10/10 改良版 を見てください。

docker-compose

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
version: '3'

services: 
    mysql:
      container_name: mysql
      image: mysql:5.7
      command:
        - --sql-mode=NO_ENGINE_SUBSTITUTION
      volumes:
        - ./.data/mysql:/var/lib/mysql
        - ./.docker/mysql/init:/docker-entrypoint-initdb.d
      ports:
        - "3306:3306"
      environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: database
        MYSQL_USER: develop
        MYSQL_PASSWORD: p@ssw0rd
        TZ: 'Asia/Tokyo'

    schemaspy:
      container_name: schemaspy
      image: schemaspy/schemaspy:6.1.0
      volumes:
        - ./schemaspy/output:/output
        - ./schemaspy/meta:/meta
      depends_on:
        - mysql
      command: >
        java -jar schemaspy.jar
        -t mysql
        -dp /drivers
        -host mysql
        -port 3306
        -db database
        -u develop
        -p p@ssw0rd
        -s database
        -meta /meta/schemameta.xml
        -connprops useSSL\\=false        

SchemaSpy の起動オプション

  • -t : データベース種別
  • -dp : ドライバーパス
  • -host : DBホスト
  • -port : ポート番号
  • -db : DB名
  • -u : ユーザ名
  • -p : パスワード
  • -s : スキーマ名
  • -meta : 手動でリレーションなどを連携するためのメタファイル(なければ不要

実行

Dockerを起動。

docker-compose up -d --build

起動後にSchemaSpyがDBに接続してDBの解析結果を schemaspy/output にアウトプット結果をHTMLで出力してくれます。

SchemaSpy のコンテナは解析が終わると終了するようになっています。
そのため、必要に応じて個別に起動する場合は以下のコマンドを実行すると再出力してくれます。

docker-compose up -d --build schemaspy

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer