sql-maven-plugin で dbdeploy 用管理テーブルを作成
dbdeploy 用の管理テーブル (changelog) を作成する方法として、sql-maven-plugin を利用してみた。
http://mojo.codehaus.org/sql-maven-plugin/
PostgreSQL 用のテーブル定義 (src/main/sql/0000_dbdeploy_changelog.sql) は、
CREATE TABLE IF NOT EXISTS changelog ( change_number BIGINT NOT NULL, complete_dt TIMESTAMP NOT NULL, applied_by TEXT NOT NULL, description TEXT NOT NULL, PRIMARY KEY (change_number) );
pom.xml は、
<project> ... <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</artifactId> <version>1.5</version> <dependencies> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency> </dependencies> <configuration> <driver>org.postgresql.Driver</driver> <url>jdbc:postgresql://localhost/testdb</url> <username>username</username> <password>password</password> <srcFiles> <srcFile>${basedir}/src/main/sql/0000_dbdeploy_changelog.sql</srcFile> </srcFiles> </configuration> </plugin> </plugins> </build> ... </project>
あとは、コマンドライン上から、
mvn sql:execute
とすればSQLが実行された。すばらしい!
だが、pom.xml に必要なものをどんどん追加していったら、冗長になってきた。シンプルにする方法はないものか。