如果需要,我想将标记设置到我的变更集,以便再次回滚到此变更集
所以我想知道如何将标记设置为SQL格式的变更集
提前谢谢。
这是我在数据库上的数据库更改日志表。
数据库更改日志表
这是我的变更日志文件(标记不起作用,我也尝试了tagDatabase:"version_3.0",但都不起作用(:
--liquibase formatted sql
--changeset yusuf:5 -tag:"version_3.0"
create table test_table2 (test_id INT, test_column VARCHAR, PRIMARY KEY (test_id))
这是我的pom.xml liquibase插件:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>4.2.0</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
<goals>
<goal>update</goal>
<goal>tag</goal>
</goals>
</plugin>
目前在格式化的sql中没有任何东西可以直接支持这样做。
使用xml/yaml/json,我们可以在变更集中包含<tag>
更改,但格式化的sql明确不支持这些更改,因为它专注于";剧本包含了所有的逻辑,而不依赖任何利口酒魔法"CCD_ 2落入其中。
标记所做的只是在databasechangelog表的tag
列中标记最后运行的变更集。所以你可以这样做:
--liquibase formatted sql
--changest yusuf:5
create table test_table2 (test_id INT, test_column VARCHAR, PRIMARY KEY (test_id))
--changeset yusuf:6 -tag:"version_3.0"
update databasechangelog t set tag='version_3.0' where ....
其中更新语句将是特定于数据库的内容。你可以想出"的正确语法;其中它是具有最高dateexecuted、orderexecured值的行";但这可能会变得复杂。您可以通过运行logLevel=fine的liquibase tag
命令来获取数据库使用的内容并查看它
或者,如果您知道它在变更日志文件中的位置以及它是如何使用的,则可以执行更简单的where id='5' and author='yusuf' and path='my/file.sql'
类型语句。