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