gpt4 book ai didi

java - 在多模块项目中使用 Liquibase

转载 作者:行者123 更新时间:2023-12-01 14:33:30 24 4
gpt4 key购买 nike

我有两个模块( editorengine )可用于通用数据库。对于脚本的部署,我想使用 liquibase .我不想在两个地方复制相同的脚本,我想在一个地方管理它们。为此,我创建了一个单独的模块( database-structure ),它只包含我的脚本和参数 spring .liquibase.change-log=classpath:db/changelog/db.changelog-master.xml .我已将此模块 ( database-structure ) 添加为我的其他模块的依赖项。最终的结构如下(为简洁起见,省略了类):

D:\PROJECTS\MY-PROJECT
├───database-structure
│ │ pom.xml
│ │
│ └───src
│ ├───main
│ │ ├───java
│ │ └───resources
│ │ │ application.properties
│ │ │
│ │ └───db
│ │ └───changelog
│ │ │ db.changelog-master.xml
│ │ │
│ │ └───1.0
│ │ db.changelog-1.0.xml
│ │ metadata_create.sql
│ │ metadata_insert_data.sql
│ │ metadata_rollback.sql
│ │
│ └───test
│ └───java
├───editor
│ │ pom.xml
│ │
│ └───src
│ ├───main
│ │ ├───java
│ │ └───resources
│ │ │ application.properties
│ │ │
│ │ └───META-INF
│ │ spring.factories
│ │
│ └───test
│ ├───java
│ │ └───ru
│ │ └───test
│ │ └───editor
│ │ └───EditorControllerTest.java
│ │
│ └───resources
│ application.yml


└───engine
│ pom.xml

└───src
├───main
│ ├───java
│ └───resources
│ application.yml

└───test
├───java
└───resources

但是,当我在 editor 中开始测试时,例如( EditorControllerTest.java ),我收到错误,即找不到 Liquibase:
Caused by: java.lang.IllegalStateException: Cannot find changelog location: class path resource [db/changelog/db.changelog-master.yaml] (please add changelog or check your Liquibase configuration)

但是,我设置了 spring.liquibase.change-log application.properties 中的参数在 database-structure模块。为什么会被忽略?

如果我在 editor 中指定此选项模块,一切正常。如何使用 Liquibase 收集所有逻辑工作在 database-structure 的同一个地方模块?

最佳答案

But, I set spring.liquibase.change-log parameter in application.properties in database-structure module. Why it is ignored?



在运行时,与任何资源或类一样,在根 ( /) 的类路径中找到的第一个 application.properties 将被拾取,其他的将被忽略。

关于java - 在多模块项目中使用 Liquibase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com