我是 liquibase 的新手,我已阅读 liquibase 文档,但仍然没有找到 liquibase 如何确定数据库的当前版本以及应在update
.
例如,如果考虑来自 liquibase 站点主页的 SQL 脚本:
sql 文件的第一次运行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)
);
Run Code Online (Sandbox Code Playgroud)
第二次运行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)
Run Code Online (Sandbox Code Playgroud)
第三次运行是:
--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)
Run Code Online (Sandbox Code Playgroud)
第四次运行:
--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)
Run Code Online (Sandbox Code Playgroud)
第五次运行是:
--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)
Run Code Online (Sandbox Code Playgroud)
第 5 次运行时会发生什么update
,liquibase 将如何确定第 4 次运行后数据库版本将为“4”并且需要将列修改为 15 个字符长度?
liquibase 可能会向数据库添加一些“版本”表,在其中插入所应用的变更集/补丁的最新版本?
谢谢你!
http://www.liquibase.org/documentation/index.html说:
变更集由“author”和“id”属性以及变更日志文件的位置唯一标识,并且是 Liquibase 跟踪执行的单元。当 Liquibase 运行时,它会查询 DATABASECHANGELOG 表中标记为已执行的变更集,然后执行变更日志文件中尚未执行的所有变更集。
归档时间: |
|
查看次数: |
1586 次 |
最近记录: |