我一直在尝试使用liquibase maven update命令。
我的情况是:
1. I have three versions of SQL in SVN.
2. I have already migrated to version 1.
3. Then I want to upgrade to version 2.
4. But don't want to apply version 3 migration.
5. With each version's changeset I use tagDatabase to tag database.
我通过maven更新可选参数。我找到了一个可选参数" toTag"并试图使用它。但结果是toTag参数没有按预期工作。 Liquibase继续迁移版本3。
我的maven配置如下:
<profile>
<id>migrate-change-log</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<configuration>
<propertyFile>liquibase.properties</propertyFile>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<verbose>${verbose}</verbose>
<toTag>${to.tag}</toTag>
</configuration>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
提前致谢。
答案 0 :(得分:1)
为了不将特定变更集部署到给定环境,您需要指定阻止部署变更集的内容。最常见的方法是使用上下文或标签。例如,您可能认为更改仅适用于开发或测试环境,因此您可以将属性context="dev OR test"
放在该更改集上。然后在部署时在命令中指定上下文:ie context=dev
在部署到开发环境时,以及部署到生产时指定context=prod
。
标签旨在标记&#39;数据库具有数据库使用的特定软件版本的所有更改,而不是控制部署的更改的方法。