Запуск mvn liquibase: updateSQL для определенного набора изменений

#maven #liquibase

#maven #liquibase

Вопрос:

Кто-нибудь, кто является более опытным пользователем maven, вероятно, может мне здесь помочь:

как мне передать «необязательные параметры» в liquibase при запуске его в качестве цели maven?

Я хочу передать «changesToApply», см.http://www.liquibase.org/manual/maven_updatesql

Но каков синтаксис? Что-то вроде этого, но не совсем:

 mvn liquibase:updateSQL -DchangesToApply=2
  

Ответ №1:

Короткий ответ:

 mvn liquibase:updateSQL -Dliquibase.changesToApply=2
  

Длинный ответ

Перейдите к интересующему вас параметру и найдите его выражение. http://www.liquibase.org/manual/maven_updatesql#changesToApply

Ищите

 changesToApply:

The number of changes to apply to the database. By default this value is 0, which will result in all changes (not already applied to the database) being applied.
Type: int
Required: No
Expression: ${liquibase.changesToApply}
Default: 0
  

Из этого вы можете видеть, что выражение ${liquibase.changesToApply}

 Expression: ${liquibase.changesToApply}
  

Это то, что вы должны использовать

Комментарии:

1. Ага! Тогда я был довольно близок, просто не хватало «liquibase».. Отказ от ответственности: я этого не пробовал.

Ответ №2:

Из руководства по плагину Maven Liquibase

Все параметры для выполнения плагина Maven Liquibase также могут быть указаны в <configuration> разделе плагина. Ниже приведен пример этого:

 [...]
<plugin>
  <groupId>org.liquibase</groupId>
  <artifactId>liquibase-maven-plugin</artifactId>
  <version>2.0.1</version>
  <executions>
    <execution>
      <phase>process-resources</phase>
      <configuration>
        <changeLogFile>src/main/resources/org/liquiabse/business_table.xml</changeLogFile>
        <driver>oracle.jdbc.driver.OracleDriver</driver>
        <url>jdbc:oracle:thin:@tf-appserv-linux:1521:xe</url>
        <username>liquibaseTest</username>
        <password>pass</password>
      </configuration>
      <goals>
        <goal>update</goal>
      </goals>
    </execution>
  </executions>
</plugin>
[...]
  

Ответ №3:

Вот как я это делаю: mvn liquibase:updateSQL -P mysql -DskipTests -Dliquibase.changeLogFile=create.xml

где находится мой файл журнала изменений «create.xml «и «mysql» — предварительно настроенный профиль для заполнения моего файла свойств базы данных.

убедитесь, однако, что файл журнала изменений не жестко запрограммирован в файле liquibase.properties и убедитесь, что вы перестроили модуль, потому что цель maven будет использовать liquibase.properties в каталоге target / classes модуля

Ответ №4:

Для версии 3.5.5 должно выходить наружу <executions> , как показано ниже:

 <plugin>
      <groupId>org.liquibase</groupId>
      <artifactId>liquibase-maven-plugin</artifactId>
      <version>3.0.5</version>
      <configuration>
        <changeLogFile>src/main/resources/org/liquibase/business_table.xml</changeLogFile>
          <driver>oracle.jdbc.driver.OracleDriver</driver>
          <url>jdbc:oracle:thin:@tf-appserv-linux:1521:xe</url>
          <username>liquibaseTest</username>
          <password>pass</password>
        </configuration>
      <executions>
        <execution>
          <phase>process-resources</phase>
          <goals>
            <goal>update</goal>
          </goals>
        </execution>
      </executions>
    </plugin>