All*_*afe 5 java liquibase multi-module spring-boot
我有两个模块(editor和engine)与一个公共数据库一起工作。对于我想使用的脚本的部署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
Run Code Online (Sandbox Code Playgroud)
但是,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)
Run Code Online (Sandbox Code Playgroud)
但是,我在模块中设置了spring.liquibase.change-log参数。为什么会被忽略?application.propertiesdatabase-structure
如果我在editor模块中指定此选项,则一切正常。如何Liquibase在database-structure模块中的同一位置收集所有逻辑工作?
但是,我在数据库结构模块的 application.properties 中设置了 spring.liquibase.change-log 参数。为什么它被忽略?
在运行时,与任何资源或类一样,在根 ( /) 的类路径中找到的第一个 application.properties 将被选取,其他的将被忽略。
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |