Команда обновления Liquibase maven с параметром toTag

Я пытался работать с командой обновления liquibase maven.

Мой сценарий таков:

   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>

Заранее спасибо.


person G Shenoy    schedule 27.06.2017    source источник


Ответы (1)


Чтобы НЕ развертывать конкретный набор изменений в данной среде, вам нужно указать что-то, что предотвращает развертывание этого набора изменений. Наиболее распространенными способами являются использование контекстов или меток. Например, вы можете решить, что изменение подходит только для среды разработки или тестирования, поэтому вы можете поместить атрибут context="dev OR test" в этот набор изменений. Затем при развертывании вы указываете контекст в команде: то есть context=dev при развертывании в среде разработки, а при развертывании в рабочей среде вы указываете context=prod.

Теги предназначены для того, чтобы «пометить» базу данных как имеющую все изменения для конкретной версии программного обеспечения, с которой работает база данных, а не как способ контроля развертываемых изменений.

person SteveDonie    schedule 28.06.2017
comment
Я согласен, и в настоящее время я использую метки для указания версии, метка = v1.0, и при развертывании я буду запускать все наборы изменений для метки v1.0, а для среды я использую контекстный атрибут. И, наконец, используйте ‹tagDatabase›, чтобы пометить базу данных. Это правильный путь?? Может быть, я не совсем понимаю этот момент, почему запись тега остается в базе данных и что означает атрибут toTag? И как я могу сообщить Liquibase о переходе с версии 1.0 на версию 2.0, если в исходном коде доступно несколько версий. Снова лейблы, хороший подход?? - person G Shenoy; 03.07.2017