LiquiBase 概要
LiquiBase を利用することで、開発者はデータベースへの変更をXML 形式のファイルでローカルな開発環境に保存し、ローカルなデータベースに適用できます。これらの変更がソース管理システムにコミットされ、ほかの開発者にも行き渡ると、変更はほかの開発者のローカルなデータベース、結合環境のデータベース、ステージングデータベース、そして本番環境のデータベースにも適用されます。変更はいくつかの方法で適用されます、Ant や Maven のタスク、コマンドラインプログラム、またはアプリケーションやアプリケーションサーバーの起動時に自動的になされるなどの方法です。
LiquiBase Migrator は、コアとなるシステムでアジャイルなメソッドを利用してデータベースアプリケーションを簡単に開発させる手助けとなります。開発中にローカルなデータベースに変更がなされると、これらのリビジョンが XML 変更ログファイルに保存されます。変更ログの各エントリは、”id” と “author” 属性があります。この2つの属性に変更ログファイルの名前と場所によって、特定の変更を一意に識別します。migrator が実行されると、データベースに定義された DatabaseChangeHistory テーブルの内容と比較を行います。このテーブルには 以前になされたすべての変更の”id”、”author” そして、”file” 属性が保存されています。もし、ログファイルの変更が DatabaseChangeHistory テーブルに存在しないときは、Migrator は、変更の実施と記録を行い、将来実行された場合にはその実施をスキップしてくれます。
その変更ログファイルは、INCLUDE タグを利用してネストすることもできます。これは、変更をコンポーネント、プロジェクト、イテレーションなどプロジェクトにもっとも適した単位に分割することができ、たいへん有効です。
このツールを作成するモチベーションは、この本 Refactoring Databases: Evolutionary Database Design (Addison Wesley Signature Series) データベースリファクタリング(日本語訳)を読んで、開発環境でなされたデータベースのリファクタリングと同一の変更を稼働している本番システムに適用するのに、ほんとうに役立つツールがないとの記述を見つけて、さらに高まりました。多くの試みがなされていますが、それらは複数の開発者間での利用、コードブランチの利用、異なる複数の DBMS システムへの対応に問題を抱えています。
