Gradle 由于delta_集合中没有默认值,如何解决dbdeploy中的SchemaVersionTrackingException?
我正在尝试自动迁移数据库。我使用dbdeploy实现同样的功能。 我遵循了此链接中的步骤 我将更改日志表创建为:Gradle 由于delta_集合中没有默认值,如何解决dbdeploy中的SchemaVersionTrackingException?,gradle,database-migration,dbdeploy,Gradle,Database Migration,Dbdeploy,我正在尝试自动迁移数据库。我使用dbdeploy实现同样的功能。 我遵循了此链接中的步骤 我将更改日志表创建为: 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, d
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'
)
}
但是,我还是得到了同样的例外
我还删除了delta_set属性,得到了相同的异常。这真把我弄糊涂了
我对数据迁移一无所知。因此,任何关于这个错误的帮助,以及我应该如何去做,都将不胜感激
提前感谢。DBDeploy文档对此不是很明确,但是在2.X版和3.X版之间,
changelog
表格格式发生了变化(请参阅)。我怀疑您正在使用DBDeploy 3.X
您需要:
changelog
表:
DROP TABLE changelog;
CREATE TABLE changelog (
change_number INTEGER NOT NULL,
complete_dt TIMESTAMP NOT NULL,
applied_by VARCHAR(100) NOT NULL,
description VARCHAR(500) NOT NULL
);
ALTER TABLE changelog ADD CONSTRAINT Pkchangelog PRIMARY KEY (change_number);
CREATE TABLE changelog (
change_number INTEGER NOT NULL,
complete_dt TIMESTAMP NOT NULL,
applied_by VARCHAR(100) NOT NULL,
description VARCHAR(500) NOT NULL
);
ALTER TABLE changelog ADD CONSTRAINT Pkchangelog PRIMARY KEY (change_number);