无法从 Liquibase maven 插件为两个数据库执行两个更改日志
Cannot execute two changelogs for two databases from Liquibase maven plugin
我目前有两个不同的 databases:Oracle 和 DB2。我正在尝试将 liquibase 的 maven 插件用于 运行 这两个数据库上的两个不同的变更日志。
我目前拥有的:
在我的配置中,我设置了 Oracle 和 DB2 连接:
<configuration>
<changeLogFile>src/main/resources/liquibase/changelogORACLE.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@vdfdfseisfs3:3131:orcl</url>
<username>liquibase</username>
<password>password</password>
<changeLogFile>src/main/resources/liquibase/changelogDB2.xml</changeLogFile>
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<url>jdbc:db2://111.111.1.11:10000/test</url>
<username>Admini</username>
<password>password</password>
</configuration>
在执行过程中我设置如下:
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
而且我已经设置了两个依赖项:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<artifactId>com.ibm.db2.jcc</artifactId>
<groupId>db2jcc</groupId>
<version>4.9.78</version>
<scope>system</scope>
<systemPath>${basedir}/my-repo/com/ibm/db2/jcc/db2jcc/4.9.78/db2jcc-4.9.78.jar</systemPath>
</dependency>
我的问题是,当我从 windows CMD
运行 像这样:mvn liquibase:update
只会执行 DB2 更改日志,因此我将为 DB2 数据库而不是 Oracle 创建数据。为什么只执行一个更改日志文件?
我可以单独执行 Oracle 和 DB2 更新日志,但我想同时执行它们。
Liquibase maven 插件很可能不允许在您的 pom 的这一部分进行两种配置:
<configuration>
<changeLogFile>src/main/resources/liquibase/changelogORACLE.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@vdfdfseisfs3:3131:orcl</url>
<username>liquibase</username>
<password>password</password>
<changeLogFile>src/main/resources/liquibase/changelogDB2.xml</changeLogFile>
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<url>jdbc:db2://111.111.1.11:10000/test</url>
<username>Admini</username>
<password>password</password>
</configuration>
估计只读了第一篇。通过阅读 Maven 生命周期文档,您似乎可以通过使用两个不同的执行来执行您想要的操作,但我不清楚您将如何更改 pom 以使两个执行使用两个不同的配置。
我目前有两个不同的 databases:Oracle 和 DB2。我正在尝试将 liquibase 的 maven 插件用于 运行 这两个数据库上的两个不同的变更日志。
我目前拥有的:
在我的配置中,我设置了 Oracle 和 DB2 连接:
<configuration>
<changeLogFile>src/main/resources/liquibase/changelogORACLE.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@vdfdfseisfs3:3131:orcl</url>
<username>liquibase</username>
<password>password</password>
<changeLogFile>src/main/resources/liquibase/changelogDB2.xml</changeLogFile>
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<url>jdbc:db2://111.111.1.11:10000/test</url>
<username>Admini</username>
<password>password</password>
</configuration>
在执行过程中我设置如下:
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
而且我已经设置了两个依赖项:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<artifactId>com.ibm.db2.jcc</artifactId>
<groupId>db2jcc</groupId>
<version>4.9.78</version>
<scope>system</scope>
<systemPath>${basedir}/my-repo/com/ibm/db2/jcc/db2jcc/4.9.78/db2jcc-4.9.78.jar</systemPath>
</dependency>
我的问题是,当我从 windows CMD
运行 像这样:mvn liquibase:update
只会执行 DB2 更改日志,因此我将为 DB2 数据库而不是 Oracle 创建数据。为什么只执行一个更改日志文件?
我可以单独执行 Oracle 和 DB2 更新日志,但我想同时执行它们。
Liquibase maven 插件很可能不允许在您的 pom 的这一部分进行两种配置:
<configuration>
<changeLogFile>src/main/resources/liquibase/changelogORACLE.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@vdfdfseisfs3:3131:orcl</url>
<username>liquibase</username>
<password>password</password>
<changeLogFile>src/main/resources/liquibase/changelogDB2.xml</changeLogFile>
<driver>com.ibm.db2.jcc.DB2Driver</driver>
<url>jdbc:db2://111.111.1.11:10000/test</url>
<username>Admini</username>
<password>password</password>
</configuration>
估计只读了第一篇。通过阅读 Maven 生命周期文档,您似乎可以通过使用两个不同的执行来执行您想要的操作,但我不清楚您将如何更改 pom 以使两个执行使用两个不同的配置。