【Docker】SchemaSpy を使って自動的にER図を生成する
Docker で SchemaSpy を使って自動的にER図を生成する。
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
参考