LoginSignup
8
8

More than 5 years have passed since last update.

ER Master を利用してデータベースの初期化を自動化する

Last updated at Posted at 2015-02-27

ER Master は超便利なツールだ

ユカイ、ツーカイ、カイハツ環境!(11):DB設計の神ツール「ERMaster」なら、ここまでできる (1/3) - @IT

ER Master は超便利なツールだ。

わかりやすく超便利だ。
erm.PNG

Eclipse のプラグインとして提供されているので、特に Java 開発者であれば一度は使ってみたほうがいい。神ツールと呼ばれるのにも納得すると思う。

ER Master を利用したスキーマの再構成

そんな ER Master は DDL、DML のエクスポートにも対応しているのだが、これは Ant から実行することもできる。

これを利用してデータベースの状態を初期化することができる。以下の例はデータベースに H2 Database を使用。

build.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project>

    <property name="sql_dir" location="build/erm" />
    <property name="erm" location="sample.erm" />
    <property name="ddl" value="create-schema.sql" />
    <property name="dml_name" value="initialization" />

    <target name="resetDB">
        <!-- スキーマ構築 DDL の作成 -->
        <ermaster.ddl diagramFile="${erm}" outputfile="${sql_dir}/${ddl}" />

        <!-- 初期データ登録スクリプトの作成 -->
        <ermaster.testdata diagramfile="${erm}" outputdir="${sql_dir}" format="0">
            <testdata name="${dml_name}" />
        </ermaster.testdata>

        <!-- スキーマ構築スクリプトの実行 -->
        <exec executable="java">
            <arg line="-cp lib/h2-1.4.185.jar" />
            <arg value="org.h2.tools.RunScript" />
            <arg line="-url jdbc:h2:~/test" />
            <arg line="-script ${sql_dir}/${ddl}" />
            <arg value="-continueOnError" />
        </exec>

        <!-- 初期データ登録スクリプトの実行 -->
        <exec executable="java">
            <arg line="-cp lib/h2-1.4.185.jar" />
            <arg value="org.h2.tools.RunScript" />
            <arg line="-url jdbc:h2:~/test" />
            <arg line="-script ${sql_dir}/${dml_name}.sql" />
        </exec>
    </target>

</project>

Eclipse 上からresetDBターゲットを実行することで、ER Master に登録されたデータから自動的に DDL、DML を作成して実行してくれる。

※事前に公式サイトの設定に従って、必要な設定は行っておく必要はある。

使いどころ

  • スキーマが確定していないので、開発しながら決めていきたい。
  • テーブルに初期データを登録したい。

こういう場面は往々にしてある。もちろん開発フレームワークがこれを実現してくれる場合もあるだろうけれど、なかなかそうでないことも多いだろう。そういう場合には使えると思う。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8