gpt4 book ai didi

java - Liquibase 不会从changeSet 内的类路径加载*.sql

转载 作者:行者123 更新时间:2023-11-30 05:46:54 41 4
gpt4 key购买 nike

我需要配置changeSet来执行从jar加载的sql。

我有一个可以正常工作的内部项目 changeSet

<changeSet id="1" author="sergii" dbms="h2">
<sqlFile
encoding="utf8"
path="schema-ms-sql.0.0.1.sql"
relativeToChangelogFile="true"
splitStatements="true"
stripComments="true"/>
</changeSet>

一些脚本是从不同的库提供的(在我的例子中是spring-boot-starter-batch),例如:

classpath:/org/springframework/batch/core/schema-h2.sql

请注意,jar 位于项目中并且可访问(构建\测试\运行时)。因此,我还需要在我的 changeSet 中注册一个,尝试:

<changeSet id="2" author="sergii" dbms="h2">
<sqlFile
encoding="utf8"
path="classpath*:/org/springframework/batch/core/schema-h2.sql"
relativeToChangelogFile="true"
splitStatements="true"
stripComments="true"/>
</changeSet>

并且它不适用于任何配置(例如“classpath:/org/springframework/batch/core/schema-h2.sql”“/org/springframework/batch/core/schema-h2.sql", "org/springframework/batch/core/schema-h2.sql", "classpath*:/org/springframework/batch/core/schema-h2.sql" 等)因为

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.UnexpectedLiquibaseException: java.io.IOException: File does not exist: 'classpath*:/org/springframework/batch/core/schema-h2.sql'

我知道使用 spring 我可以使用自动配置,但我对 liquibase 审核感兴趣......

是否有任何想法如何使打包脚本通过 changeSet 工作或包含到 liquibase 审核中?

最佳答案

解决方案是更改 sqlFile 标记的属性:

relativeToChangelogFile="false"

结果changeSet如下:

<changeSet id="2" author="sergii" dbms="h2">
<sqlFile
encoding="utf8"
path="classpath:/org/springframework/batch/core/schema-h2.sql"
relativeToChangelogFile="false"
splitStatements="true"
stripComments="true"/>
</changeSet>

关于java - Liquibase 不会从changeSet 内的类路径加载*.sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54673713/

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