liquibaseでお手軽DBバーション管理
書いた
http://github.com/gotoppella/liquibase_project
antをインストールさえすりゃ使えるらくちん
初期設定
$ cat <<EOF > dbconfig/設定名.property > #liquibase.properties > driver: com.mysql.jdbc.Driver > url:jdbc:mysql://ホスト名(:ポート番号)/データベース名 > username: ユーザ名 > password: パスワード > EOF $ ant db:changePropertiesFile db:changePropertiesFile: [input] input config type >設定名
antのtargetを実行する際、"input config type >"と出た場合、
dbconfigディレクトリにある"**.property"の"**"を指定する。
設定変更
$ ant db:changePropertiesFile db:changePropertiesFile: [input] input config type >設定名
既に存在するDBをバージョン管理したい場合
$ ant db:generateChangeLog db:setChangeLogName: [input] チェンジログの名前 >test $ ls changelog master.xml 20121102xxxxxx_test.xml $ ant db:changeLogSync // changelogとデータベース上のバージョン情報をシンクロ
新しいchangelog作成
$ ant db:makeChangeLog db:setChangeLogName: [input] チェンジログの名前 >test
changelogをデータベースに反映させる
$ ant db:update
データベースの変更点の差分をchangelogに変換
phpMyAdminとかで変更した内容をchangelogにできるのでxmlさわる手間も省けてよい
- 同じデータベースを二つ用意する
- 一方を変更する
- 変更してないデータベースの設定を使用する
$ ant db:diffChangeLog db:setChangeLogName: [input] チェンジログの名前 >diff db:diffChangeLog: [input] 比較元のURL >変更したデータベースのURLおよびポート [input] 比較元のデータベース名前 >変更したデータベース名 [input] 比較元のユーザ >ユーザ名 [input] 比較元のPassword >パスワード
Document作成
$ ant db:generateDocument
ブラウザでbuild/index.htmlを開く
その他
ロールバックとかのターゲットは未実装
./liquibaseコマンドで代用