带参数toTag的Liquibase maven update命令

时间:2017-06-27 19:32:53

标签: maven liquibase

我一直在尝试使用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>

提前致谢。

1 个答案:

答案 0 :(得分:1)

为了不将特定变更集部署到给定环境,您需要指定阻止部署变更集的内容。最常见的方法是使用上下文或标签。例如,您可能认为更改仅适用于开发或测试环境,因此您可以将属性context="dev OR test"放在该更改集上。然后在部署时在命令中指定上下文:ie context=dev在部署到开发环境时,以及部署到生产时指定context=prod

标签旨在标记&#39;数据库具有数据库使用的特定软件版本的所有更改,而不是控制部署的更改的方法。