亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Liquibase 不創建基于 JPA 實體的差異變更日志

Liquibase 不創建基于 JPA 實體的差異變更日志

Qyouu 2022-06-30 17:42:07
我試圖在已經提出的問題以及一些用戶推薦的這篇文章中找到答案:http ://www.operatornew.com/2012/11/automatic-db-migration-for-java-web.html但沒有運氣好的話。問題是我使用 Maven 構建工具和 Postgres DB 為我的 Java 項目配置了 Liquibase 的完整配置,但即使我已經定義了 Hibernate 實體,Liquibase diff也沒有考慮到它們,也不會產生基于 JPA 注釋實體的變更鎖.我嘗試了所有方法,但使用空的 changelock-master.xml并定義了 2 個實體,結果diff.xml為空。這是我的pom.xml:        <!--LIQUIBASE-->        <dependency>            <groupId>org.liquibase</groupId>            <artifactId>liquibase-core</artifactId>        </dependency>        <dependency>            <groupId>org.liquibase</groupId>            <artifactId>liquibase-maven-plugin</artifactId>            <version>3.4.1</version>        </dependency>        ...        <plugin>                <groupId>org.liquibase</groupId>                <artifactId>liquibase-maven-plugin</artifactId>                <version>3.5.3</version>                <dependencies>                    <dependency>                        <groupId>org.liquibase.ext</groupId>                        <artifactId>liquibase-hibernate4</artifactId>                        <version>3.6</version>                    </dependency>                    <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-beans</artifactId>                        <version>4.1.7.RELEASE</version>                    </dependency>                    <dependency>                        <groupId>org.springframework.data</groupId>                        <artifactId>spring-data-jpa</artifactId>                        <version>1.7.3.RELEASE</version>                    </dependency>                </dependencies>                <configuration>                    <propertyFile>src/main/resources/liquibase.properties</propertyFile>                    <changeLogFile>src/main/resources/db/changelog/changelog-master.xml</changeLogFile>                </configuration>            </plugin>
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

根本原因可能是 Liquibase 插件在類路徑中找不到您編譯的類。


我發現您通過src/main/resources/.... 當作為 Maven 構建的一部分執行 Liquibase 插件時,所有資源都應該直接在類路徑上可用,例如changelog-master.xml(沒有相對路徑)。


編譯后嘗試將diff目標作為 Maven 構建的一部分執行。此 POM 配置將插件綁定到流程類階段:


<build>

<plugins>

  <plugin>

    <groupId>org.liquibase</groupId>

    <artifactId>liquibase-maven-plugin</artifactId>

    <version>3.6.3</version>

    <dependencies>

...

    </dependencies>

    <configuration>

      <verbose>true</verbose>

    </configuration>

    <executions>

      <execution>

        <goals>

          <goal>diff</goal>

        </goals>

        <phase>process-classes</phase>

      </execution>

    </executions>

  </plugin>

要執行此操作,請運行mvn process-classes或稍后階段,如mvn test.


查看完整回答
反對 回復 2022-06-30
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號