Конфигурация для maven и flyway в нескольких средах, а также интеграционные тесты.

У меня есть многомодульный проект Maven, и я использую Flyway для миграции БД. В настоящее время у меня есть этот фрагмент в моем pom.xml:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.5</version>
  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql-connector-java.version}</version>
    </dependency>
  </dependencies>
  <executions>
    <execution>
      <id>drop-db-before-test-if-any</id>
      <phase>process-test-resources</phase>
      <goals>
        <goal>execute</goal>
      </goals>
      <configuration>
        <driver>${datasource.driver}</driver>
        <url>${datasource.url}</url>
        <username>${datasource.user}</username>
        <password>${dbPass}</password>
        <autocommit>true</autocommit>
        <srcFiles>
          <srcFile>${main.basedir}/db/test/drop_create_database_test.sql</srcFile>
        </srcFiles>
      </configuration>
    </execution>
  </executions>
</plugin>

Как я могу преобразовать это, чтобы выполнить эквивалент следующего, чтобы он использовал sql миграции пролетного пути для лучшей имитации производства (в настоящее время в тесте он использует db-test.properties, где jpa.generate_ddl = true, чтобы таблицы автоматически созданный из JPA):

mvn flyway:clean -P test
mvn flyway:init -Dflyway.initVersion=1 -Dflyway.initDescription="Initial Version" -P test
mvn flyway:migrate -P test

Спасибо!


person user2395365    schedule 07.03.2015    source источник


Ответы (1)


Если я правильно понял ваш вопрос, то это то, что вам нужно. Это предполагает, что у вас есть baselineOnMigrate=true в конфигурации плагина.

<profiles> <profile> <id>test</id> <build> <plugins> <plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <configuration> <driver>${datasource.driver}</driver> <url>${datasource.url}</url> <user>${datasource.username}</user> <password>${datasource.password}</password> </configuration> <executions> <execution> <id>flyway-clean-database</id> <phase>process-test-resources</phase> <goals> <goal>clean</goal> <goal>migrate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>

person warden    schedule 29.04.2015