Versions Compared

キー

  • この行は追加されました。
  • この行は削除されました。
  • Formatting was changed.
コメント: Migrated to Confluence 4.0

開発プロセスについて

ア プリケーションのソースコードは、一般的にSubversionやCVS等の構成管理システム(SCM)を使用して、履歴管理を行います。このSCMのメ リットの一つとして「何かトラブル等があった時は、以前の状態にロールバックすることが出来る」というものがあります。

しかし、アプリケーションのソースコードだけをロールバックすることができても、そのロールバックする期間にDBスキーマに変更があった 場合、テーブル構造等も含めてロールバックすることができなければ、前述の協調動作が崩れてしまい、アプリケーションは動かなくなります。

つまり、SCMにおいては「ソースコード」と共に「DB初期設定のSQL」も同時に管理しなければいけない、ということになります。

従来の構成管理方法

従来は、DB構成を管理する手段として以下のような手法が取られて来ました。

「DB初期設定のSQL」のファイルを記述して、このファイルをSCMによって管理する。
H2, HSQLDB, ApacheDerby の様なアプリケーション本体に組み込んでしまうRDBMSを利用し、データをRDBMS諸ともSCM管理する。
本番運用以降も、組み込み型RDBMSが利用できる環境であれば後者の管理方法でも問題はありませんが、本番運用では別のRDBMSを使用する前提になっている場合、さらにそのRDBMS特有の機能を使用する場合は、前者のSQLによるDB構成管理を行うしかありません。

Warning

TOOD: 画像消えたので、準備。

黄緑色で示したものが「開発時に意識しなければならないリソース」、グレーは「開発時にあまり意識しないリソース」、えんじ色が「最終的な成果物」になります。

  1. 開発者は、SQL Editor等を利用して、SQLを作成・編集を行います。
  2. また、JavaEditor等を利用して、アプリケーションのソースを作成・編集します。
  3. 出来上がったSQLとソースコードは、SCMにコミットした上で管理されます。
  4. アプリケーションをビルドする段階になったら、mavenを起動します。
    1. maven-sql-plugin等によって、SQLをDBサーバに反映させます。
    2. maven-compile-pluginによって、ソースをclassにコンパイルします。
    3. maven-war-pluginによって、warファイルを生成します。
    4. maven-tomcat-plugin等によって、warファイルをAPサーバにデプロイします。
  5. 以上でビルドは完了し、DBサーバとAPサーバが協調動作します。

以上の手順の問題点は以下の通り。

  • 前述の通り、SQLを直接編集するのは手間がかかる
  • 首尾良く、最後までグラフィカルなモデリングツールでスキーマを管理できたとしても、手動でダイアグラムデータファイルからSQLを生成してからでないとmavenを走らせることができない。
  • 従来のモデリングツールでは、DDLを管理することは出来るが、DMLを管理することはできない。

最初にスキーマを作成する時にはモデリングツールを使用するかもしれませんが、ある程度までアプリケーションが出来上がって来た時点では、モデリングツールを使って編集することは難しくなってきますので、結局直接SQLファイルを編集することになると思います。

これらを解決しようとするのがJiemamyです。

Jiemamyを使用した構成管理方法

Warning

TOOD: 画像消えたので、準備。

「開発時に意識しなければならないリソース」が「SQL」から「Jiemamyモデル」に変化しているのがポイントです。

  1. 開発者は、Jiemamy Diagram Editorを利用して、DBスキーマの作成・編集を行います。
  2. また、JavaEditor等を利用して、アプリケーションのソースを作成・編集します。
  3. 出来上がったDiagramファイルとソースコードは、SCMにコミットした上で管理されます。
  4. アプリケーションをビルドする段階になったら、mavenを起動します。
    1. maven-jiemamy-pluginによって、DiagramファイルからSQLを生成し、DBサーバに反映させます。
    2. maven-compile-pluginによって、ソースをclassにコンパイルします。
    3. maven-war-pluginによって、warファイルを生成します。
    4. maven-tomcat-plugin等によって、warファイルをAPサーバにデプロイします。
  5. 以上でビルドは完了し、DBサーバとAPサーバが協調動作します。

以上の手順でDB構成を管理すれば、アプリケーションが成熟してきた時点でも、スキーマを編集する場合は、Diagramを通して作業を行うことができます。開発者は、生成されるSQLを一切意識する必要がありません。