如何在sqlfile模式下标记多个变更集

时间:2019-08-08 15:38:45

标签: sql oracle liquibase

我使用sqlfile模式。 在一个sql文件中,我写了几则变更集:

--liquibase formatted sql

--changeset chs:31 
create table tab_tst3(
    id int primary key,
    name varchar(255)
);
--rollback drop table tab_tst3;

--changeset chs:32 
insert into tab_tst3 (id, name) values (1, 'tab 1');
insert into tab_tst3 (id, name) values (2, 'tab 2');

--changeset chs:33
create sequence tab_seq3;
--rollback drop sequence tab_seq3;

当我执行该文件时:

liquibase --driver=oracle.jdbc.OracleDriver --url=jdbc:oracle:thin:@xxxxxx--username=xxx--
password=xxx --changeLogFile=myfile.sql

CEST从08年8月8日15:48:14 CEST开始(版本3.7.0建立于2019-07-16 02:26:39) 已成功标记“ xxxx”

当我这样做

liquibase --driver=oracle.jdbc.OracleDriver --url=jdbc:oracle:thin:@xxxxxx--username=xxx--
password=xxx --tag=myTAG

只有最后一个ligne被标记(chs:33)

如何用相同的标签标记所有3行?

谢谢

1 个答案:

答案 0 :(得分:1)

tag命令的作用是将已经部署的一组特定更改标记为“该更改集处于良好状态,我可能想回到此状态”。因此,想法是您运行了liquibase update,并且那时变更日志中的三个变更集已部署到数据库中。您进行了一些测试,然后确定一切都很好,因此运行liquibase tag来标记该位置。您可以继续进行开发,并添加一些新的变更集,然后使用liquibase update将这些变更集部署到数据库中。在测试过程中,您发现了一个问题,因此您想返回到上一个已知的良好状态,因此您可以对已应用的标记使用liquibase rollback命令,并回滚有问题的新更改,从而获得回到已知的良好状态。