gpt4 book ai didi

java - 使用mvn spring-boot时无法识别Liquibase changelog

转载 作者:行者123 更新时间:2023-12-01 17:22:52 26 4
gpt4 key购买 nike

我有一个带有两个模块的模块化Spring Boot应用程序:


应用程序模块,包含SpringBootApplication和业务逻辑。
包含所有Liquibase依赖项,更改日志和sql文件的数据库模块。


应用程序模块中的pom.xml包含对DB模块的依赖关系。此外,应用程序模块使用maven-war-plugin;它将所有资源(changelog和sql文件)从DB模块复制到应用程序模块。

在服务器中进行部署时,此设置将按预期工作:执行所有SQL脚本并创建DBCHANGELOG表。

但是,如果我使用mvn spring-boot:run运行该应用程序,则仅创建DBCHANGELOG表。我的脚本都没有执行,而且Liquibase没有任何错误。有什么想法吗?

我认为也许spring-boot:run跳过了我复制所有资源的阶段。但是,更改日志已被识别并成功读取。

我的数据库模块如下所示:

enter image description here

我的变更日志:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
<includeAll path="sql"/>
</databaseChangeLog>

最佳答案

确保具有属性spring.liquibase.change-log=classpath:sql/changeLog.xml(“ db模块”的资源目录应包含在classpath中)。

并尝试使用relativeToChangelogFile="true"指定sql目录的位置。

<includeAll path="sql" relativeToChangelogFile="true"/>

关于java - 使用mvn spring-boot时无法识别Liquibase changelog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61261439/

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