[英]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 構建的特定步驟運行,例如compile
或package
或者,您可以將 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.