我正在尝试进行自动数据库迁移。我正在使用 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:无法更新更改日志,因为:字段 'delta_set' 没有默认值。
我尝试在更改表日志文件中将“main”指定为默认值:
delta_set VARCHAR(10) NOT NULL DEFAULT 'Main'
但是,我仍然有同样的例外。
我还删除了 delta_set 属性,我得到了同样的异常。这真的让我很困惑。
我对数据迁移完全陌生。因此,任何有关此错误以及我应该如何处理的帮助将不胜感激。
先感谢您。