Skip to content
irof edited this page Aug 7, 2020 · 6 revisions

設定

jig.properties ファイルをクラスパスか実行時のカレントディレクトリに配置してください。

jig.erd.output.directory=./build
jig.erd.output.prefix=library-er
jig.erd.output.format=png
jig.erd.output.rankdir=LR
キー 意味 許容する値 設定しない場合のデフォルト
jig.erd.output.directory 出力先ディレクトリ 任意のディレクトリ カレントディレクトリ
jig.erd.output.prefix 出力ファイル名のプレフィックス 英数、記号(-_. jig-erd
jig.erd.output.format 出力ファイルの形式 SVG, PNG, DOT(テキスト) SVG
jig.erd.output.rankdir ダイアグラムの方向 参考 LR, RL, TB, BT LR

実行例

SpringBoot + H2Database での実行例です。

  • テストコード
  • アプリケーションリスナー
  • Flyway

テストコード

  1. @SpringBootTestDataSourceを受け取るテストを作成する
  2. テストを実行する
import jig.erd.JigErd;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;

@SpringBootTest
public class ErdTest {

    @Test
    void run(@Autowired DataSource dataSource) {
        JigErd.run(dataSource);
    }
}

アプリケーションリスナーで実行する

  1. JigErdを継承したApplicationListenerを作成する
  2. アプリケーションを起動する
package sample;

import jig.erd.JigErd;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;

@Component
public class JigErdListener extends JigErd implements ApplicationListener<ApplicationStartedEvent> {

    public JigErdListener(DataSource dataSource) {
        super(dataSource);
    }

    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        run();
    }
}

Flywayで出力する

  1. Java-based migrationを作成する
  2. マイグレーションを実行する
package db.migration;

import jig.erd.JigErd;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.flywaydb.core.api.migration.Context;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;

import javax.sql.DataSource;

public class R__JigErd extends BaseJavaMigration {

    @Override
    public void migrate(Context context) {
        DataSource dataSource = new SingleConnectionDataSource(context.getConnection(), true);
        new JigErd(dataSource).run();
    }
}
Clone this wiki locally