【发布时间】:2017-09-06 22:47:51
【问题描述】:
我是 liquibase 的新手,我已经阅读了 liquibase 文档,但仍然没有找到,liquibase 如何确定数据库的当前版本以及应该对update 应用哪些更改。
例如,如果从 liquibase 站点主页考虑 SQL 脚本:
第一次运行update,sql文件为:
--liquibase formatted sql
--changeset nvoxland:1
create table person (
id int not null primary key,
firstname varchar(80),
lastname varchar(80) not null,
state varchar(2)
);
第二次运行update,脚本是
--liquibase formatted sql
--changeset nvoxland:1
create table person (
id int not null primary key,
firstname varchar(80),
lastname varchar(80) not null,
state varchar(2)
);
--changeset nvoxland:2
alter table person MODIFY column firstname varchar(8)
第三轮是:
--liquibase formatted sql
--changeset nvoxland:1
create table person (
id int not null primary key,
firstname varchar(80),
lastname varchar(80) not null,
state varchar(2)
);
--changeset nvoxland:2
alter table person MODIFY column firstname varchar(8)
--changeset nvoxland:3
alter table person MODIFY column firstname varchar(10)
第四次运行:
--liquibase formatted sql
--changeset nvoxland:1
create table person (
id int not null primary key,
firstname varchar(80),
lastname varchar(80) not null,
state varchar(2)
);
--changeset nvoxland:2
alter table person MODIFY column firstname varchar(8)
--changeset nvoxland:3
alter table person MODIFY column firstname varchar(10)
--changeset nvoxland:4
alter table person MODIFY column firstname varchar(8)
第 5 次运行是:
--liquibase formatted sql
--changeset nvoxland:1
create table person (
id int not null primary key,
firstname varchar(80),
lastname varchar(80) not null,
state varchar(2)
);
--changeset nvoxland:2
alter table person MODIFY column firstname varchar(8)
--changeset nvoxland:3
alter table person MODIFY column firstname varchar(10)
--changeset nvoxland:4
alter table person MODIFY column firstname varchar(8)
--changeset nvoxland:5
alter table person MODIFY column firstname varchar(15)
第 5 次 update 运行会发生什么以及 liquibase 将如何确定,第 4 次运行后数据库版本将为“4”并且需要将列修改为 15 个字符长度?
可能是,liquibase 向数据库添加了一些“版本”表,它在其中插入应用的变更集/补丁的最新版本?
谢谢!
【问题讨论】:
标签: liquibase