Question

I have two oracle users and I am creating different schema for them. I mean each schema has different tables, types etc. I wanted to create both schemas by flyway maven plugin, first I had two maven plugins, but then I tried also to have two separate profiles:

<profiles>
    <profile>
      <id>database</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.googlecode.flyway</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <configuration>
              <url>jdbc:oracle:thin:@devdb2:1521:ZOOMUTF</url>
              <table>SCHEMA_UPDATES</table>
              <outOfOrder>true</outOfOrder>
              <locations>
                <location>db/callrec</location>
              </locations>
              <user>cr_5199_mensik_mvn</user>
              <password>callrec</password>
              <serverId>callrec</serverId>
            </configuration>
            <executions>
              <execution>
                <id>compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>migrate</goal>
                </goals>
              </execution>
              <execution>
                <id>clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>database_wbsc</id>
      <build>
        <plugins>

          <plugin>
            <groupId>com.googlecode.flyway</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <configuration>
              <url>jdbc:oracle:thin:@devdb2:1521:ZOOMUTF</url>
              <table>SCHEMA_UPDATES</table>
              <outOfOrder>true</outOfOrder>
              <locations>
                <location>db/wbsc</location>
              </locations>
              <user>sc_5199_mensik_mvn</user>
              <password>wbsc</password>
              <serverId>wbsc</serverId>
            </configuration>
            <executions>
              <execution>
                <id>wbsc_compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>migrate</goal>
                </goals>
              </execution>
              <execution>
                <id>wbsc_clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
</profiles>

Then I execute:

mvn clean -Pdatabase,database_wbsc

But result is that only second profile is executed twice:

[INFO] [clean:clean {execution: default-clean}]
[INFO] [flyway:clean {execution: clean}]
[INFO] Cleaned schema "sc_5199_mensik_mvn" (execution time 00:00.023s)
[INFO] [flyway:clean {execution: wbsc_clean}]
[INFO] Cleaned schema "sc_5199_mensik_mvn" (execution time 00:00.018s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

If I switch order of profiles in xml (not in maven execution command) then the second user is used.

How can I execute both profiles but with their configuration?

Was it helpful?

Solution

try providing the configuration at the execution level rather than the plugin level.

            <plugin>
            <executions>
                <execution>
                    <id>execution1</id>
                    <configuration>
                    </configuration>
                </execution>
                <execution>
                    <id>execution2</id>
                    <configuration>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top