ざっくりなER図を出力します。 現在はH2DatabaseとPostgreSQLに対応しています。
関連だけに着目したデータベース設計の補助道具です。
PKや列のデータ型、その他制約と言った一般的なER図で必須な項目は扱っていません。対応予定もないです。詳細な情報は他のツールの使用をお勧めします。
以下は system-sekkei/library で出力したサンプルです。3種類のダイアグラムが出力されます。
jig-erd-overview.svg
: スキーマのみjig-erd-summary.svg
: スキーマ、テーブルのみjig-erd-detail.svg
: スキーマ、テーブル、外部キーカラム
ファイル名、形式は設定で変更できます。
テーブル名を _
ではじめると色が変わります。
- Java11以降がインストールされていること
- Graphvizがインストールされていること
- 出力形式を
DOT
にした場合は不要。この場合は自分で変換を行ってください。
- 出力形式を
現在の最新は 0.1.X
です。
対象 | 推奨 |
---|---|
Java | 17以降 |
Graphviz | 2.44.1 |
H2 Database Engine | 2.1.212 |
PostgreSQL | 11.1 |
- Java11-16で使用する場合は
0.0.X
(0.0.16
など) を使用してください - H2 Database Engine
1.4.200
以前を対象にする場合、jig-erd0.0.11
以前を使用してください。
JIG | OS | Java | Graphviz |
---|---|---|---|
0.1.0 |
AppVeyor visual studio 2022 | 17 |
7.0.6 |
0.1.0 |
GitHub Actions ubuntu-latest | 17 |
2.42.2 |
0.0.3 |
macOS Catalina 10.15.5 |
AdoptOpenJDK 11.0.7 |
2.44.1 |
0.0.3 |
Windows 10 |
jdk-14.0.2_windows-x64_bin.exe |
2.44.1 |
0.0.3 |
GitHub Actions ubuntu-latest | 11 |
2.40.1 |
0.0.3 |
AppVeyor visual studio 2015 | 11 |
2.38.0 |
既にテーブル作成済みのDBに対して実行したい場合。
- jig-erd-x.x.x.jarをダウンロード
- JDBCドライバ(
postgresql-42.2.14.jar
など )をダウンロード- JDBCドライバダウンロードページ などから
- 実行
java -cp jig-erd-x.x.x.jar:postgresql-42.2.14.jar \
jig.erd.JigErd {url} {user} {password}
url, user, passは適宜置き換えてください。urlは jdbc:postgresql://localhost:5432/test
とかです。
SpringBootが schema.sql
などを使用してセットアップしたDBのERDを出力します。
依存に追加して、テスト経由で実行します。
Gradle
repositories {
mavenCentral()
}
dependencies {
testImplementation 'com.github.irof:jig-erd:latest.release'
}
Maven
<dependencies>
<dependency>
<groupId>com.github.irof</groupId>
<artifactId>jig-erd</artifactId>
<version>[0.0.14,)</version>
<scope>test</scope>
</dependency>
</dependencies>
@SpringBootTest
public class Erd {
@Test
void run(@Autowired DataSource dataSource) {
JigErd.run(dataSource);
}
}
他の出力例は wiki を参照してください。
jig.properties
ファイルをクラスパス、実行時のカレントディレクトリ、ユーザーホームの .jig
ディレクトリに配置してください。 run
メソッドを実行する場合は第二引数の Map
でも指定できます。
# サンプル
jig.erd.output.directory=./build
jig.erd.output.prefix=library-er
jig.erd.output.format=png
キー | 意味 | 許容する値 | 設定しない場合のデフォルト |
---|---|---|---|
jig.erd.output.directory |
出力先ディレクトリ | 任意のディレクトリ | カレントディレクトリ |
jig.erd.output.prefix |
出力ファイル名のプレフィックス | 英数、記号(-_. ) |
jig-erd |
jig.erd.output.format |
出力ファイルの形式 | SVG , PNG , DOT (テキスト) |
SVG |
jig.erd.filter.schema.pattern |
出力対象となるスキーマのフィルタ条件 | Pattern#compile(String) でコンパイルできる正規表現 |
フィルタしない(全て出力) |
ファイル名は {jig.erd.output.prefix}-detail.{拡張子}
などになります。
正規表現にマルチバイト文字を使用する場合の jig.properties
は UTF-8
で記述してください。
jig.erd.dot.root.{設定名}
で変更できます。
rankdir
ダイアグラムの方向です。デフォルトはRL
参考schemaColor
全体に適用されるスキーマの色です デフォルトはlightyellow
entityColor
全体に適用されるエンティティの色です。デフォルトはlightgoldenrod
使用できる色は Graphviz を参照してください。
jig.erd.dot.custom.{任意のカスタマイズ名}
でノードの色などを設定できます。複数可能。優先順位は無いので対象指定で工夫してください。
- 対象の指定(いかのいずれか一つ)
name-pattern
テーブル名に対する正規表現で指定しますalias-pattern
別名(COMMENTなどで指定する)に対する正規表現で指定しますlabel-pattern
表示されるラベル(aliasがある場合はalias、無い場合はname)に対する正規表現で指定します
- 設定できる属性
- shape
- fillcolor
- color
- penwidth
- fontcolor
- fontsize
- width
- height
- fixedsize
- margin
設定内容やデフォルト値などは Graphvizのドキュメント を参照してください。
デフォルトで以下の設定が入り、 _
で始まるものがオレンジ色で表示されます。
jig.erd.dot.custom._.label-pattern=_.+
jig.erd.dot.custom._.fillcolor=orange
gradle.properties
などで設定- 署名:
signing.keyId
signing.password
signing.secretKeyRingFile
- リポジトリの認証:
ossrhUsername
,ossrhPassword
- 署名:
VERSION=X.X.X ./gradlew publish
oosrhのリポジトリマネージャー からCloseとRelease