maven-dbdeploy-plugin の使い方

先日は dbdeploy の設定方法についてまとめたのだが、今度は使い方についてまとめてみる。

変更手順

  1. 変更管理用SQL文を書く
  2. 変更内容をDBに適用する

undo (元に戻す) 手順

  1. (無ければ) undo 用ファイルを生成する
  2. undo 内容をDBに適用する

変更管理用のSQL

空のSQLファイルを作成。

 mvn dbdeploy:change-script

ファイルの内容を編集する。
--//@UNDO 行の前が変更用のSQL文で、
--//@UNDO 行の後が undo 用のSQL文を記述する。

-- 例
CREATE TABLE FOO (id INTEGER);

--//@UNDO
DROP TABLE FOO;

変更内容の適用

その1:コマンドで直接更新する

 mvn dbdeploy:update

その2:SQL文を生成して、手動で更新する。

 mvn dbdeploy:db-scripts

現在のバージョンをチェックして最新まで一気に適用される。好きなバージョンを指定できるわけではない。

UNDO ファイルの生成

dbdeploy:update では、直接更新をかけるため、undo 用のSQL が生成されない。そんなときは、変更履歴を管理している changelog テーブルの中を直接操作して戻りたいところまでレコードを削除し、改めて dbdeploy:db-scripts で生成するといいだろう。changelog の1レコードが1つの変更を表している。

  -- 例:昨日の時点に戻す
  DELETE FROM changelog WHERE complete_dt > CURRENT_DATE;

使い方は、ザックリこんな感じだろうか。