Copy & Paste Engineer

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

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

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

補足

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

docker-compose

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 の起動オプション

実行

Dockerを起動。

docker-compose up -d --build

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

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

docker-compose up -d --build schemaspy

参考