自動DB移行をしようとしています。同じためにdbdeployを使用しています。このリンクの手順に従いましたhttp://blog.codeborne.com/2012/09/using-dbdeploy-in-gradle.html
変更ログ テーブルを次のように作成しました。
CREATE TABLE changelog (
change_number INTEGER NOT NULL,
delta_set VARCHAR(10) NOT NULL,
start_dt TIMESTAMP NOT NULL,
complete_dt TIMESTAMP NULL,
applied_by VARCHAR(100) NOT NULL,
description VARCHAR(500) NOT NULL
);
ALTER TABLE changelog ADD CONSTRAINT Pkchangelog PRIMARY KEY (change_number, delta_set);
build.gradle の updateDatabase タスクは次のとおりです。
task updateDatabase << {
ant.dbdeploy(driver: dbDriver,
url: dbUrl,
userid: dbUsername,
password: dbPassword,
dir: './src/main/resources/deploy/sql',
dbms: 'mysql'
)
}
gradle updateDatabase を実行すると、com.dbdeploy.exceptions.SchemaVersionTrackingException: Could not update change log because: フィールド 'delta_set' にデフォルト値がありません。
次のように、変更テーブル ログ ファイルのデフォルト値として「main」を割り当ててみました。
delta_set VARCHAR(10) NOT NULL DEFAULT 'Main'
しかし、私はまだ同じ例外を受け取りました。
delta_set 属性も削除しましたが、同じ例外が発生しました。これは本当に私を混乱させました。
私はデータ移行にまったく慣れていません。そのため、このエラーとその対処方法に関するヘルプをいただければ幸いです。
前もって感謝します。