【问题标题】:Cannot execute two changelogs for two databases from Liquibase maven plugin无法从 Liquibase maven 插件为两个数据库执行两个更改日志
【发布时间】:2015-10-01 01:05:16
【问题描述】:

我目前有两个不同的数据库: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>

我的问题是,当我像这样从CMD 窗口运行时:mvn liquibase:update

将只执行 DB2 更改日志,因此我将为 DB2 数据库创建数据,而不是为 Oracle 创建数据。为什么只执行一个变更日志文件?

我可以单独执行 Oracle 和 DB2 变更日志,但我想同时执行它们。

【问题讨论】:

    标签: maven liquibase


    【解决方案1】:

    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 以使两种执行使用两种不同的配置。

    【讨论】:

    • 我通过这样做解决了这个问题:freekode.org/liquibase-multiple-db 问题是只有当我做mvn install 时它才会成功,如果我做mvn liquibase:update 它将无法工作
    • 也许你可以使用maven配置文件并执行两次?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    相关资源
    最近更新 更多