簡體   English   中英

Maven mvn install 不運行 liquibase 腳本

[英]Maven mvn install doesn't run liquibase scripts

每個人! 我遇到了一個問題。 我有帶有 Spring JDBC 和 liquibase 的 SpringBoot 應用程序。 當我執行mvn install時,我的測試失敗了,因為 liquibase 沒有運行。 什么是問題? Liquibase 工作正常。 當我使用liquibase:update或只是運行應用程序時 - 一切都很好。 我也將 mySQL db 用於應用程序和測試。 我什至不知道你需要看什么代碼。

通過這種方式,我連接到 db 進行測試:

@Configuration
public class SpringJdbcConfig {
    @Bean
    DataSource getDataSource() throws SQLException {
        MysqlDataSource dataSource = new MysqlDataSource();
        dataSource.setDatabaseName("correct_db");
        dataSource.setServerName("localhost");
        dataSource.setPort(3306);
        dataSource.setUser("bestuser");
        dataSource.setPassword("bestuser");
        dataSource.setServerTimezone("UTC");
        return dataSource;
    }

    @Bean
    public DataSourceTransactionManager transactionManager() throws SQLException {
        return new DataSourceTransactionManager(getDataSource());
    }

通過 Maven 插件和通過 Spring 集成運行 Liquibase 是運行 liquibase 的完全不同的方式,即使兩者通常都是由對 Maven 的調用觸發的。

當您運行mvn liquibase:update時,您正在調用您在 pom 文件的<plugins>部分中配置的liquibase-maven-plugin 它作為 Maven 構建的特定步驟運行,例如compilepackage

或者,您可以將 Spring 應用程序配置為在 Spring 應用程序啟動時自動運行 Liquibase 更新邏輯。 您可能正在通過 Maven 中的某些東西啟動您的 Spring 應用程序,但此時觸發 Liquibase 的仍然是 Spring。

如果您在應用程序啟動中沒有看到有關 Liquibase 更新操作失敗的任何錯誤,則可能是因為您在實際應用程序中沒有將 Liquibase 作為依賴項。 即使你配置了 liquibase-maven-plugin 插件,你仍然需要添加一個

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>4.10.0</version>
</dependency>

Liquibase 在其中運行的應用程序的依賴項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM