gpt4 book ai didi

java - Flyway 找不到 Jar 内的迁移

转载 作者:行者123 更新时间:2023-11-30 05:43:31 25 4
gpt4 key购买 nike

我制作了一个 Spring Boot 应用程序并将其打包为 JAR。

当我调用 jar 时,我有一个参数来强制 application.properties,一个用于 dev ,另一个用于 prod。

在开发中,我对 Flyway 有以下配置:

spring.flyway.check-location=false
spring.flyway.locations=filesystem:./src/main/resources/migrations

在 Prod 上我有以下内容:

spring.flyway.check-location=false
spring.flyway.locations=filesystem:./BOOT-INF/classes/migrations

但是在产品上我找不到迁移。

请注意,我只是将位置从 src/main/java/resources 更改为 boot-inf...因为 jar 是由它组成的。

有什么想法吗?

在询问错误之前,没有任何消息,它只是说没有任何内容可以迁移,因为它正在寻找错误的路径。

最佳答案

在第一种情况(dev)中它可以工作,因为应用程序默认在根项目目录中执行。它需要开发文件,而不是构建文件 - 这是不正确的,因为它不能保证它在生产中有效(您实际看到的事实)。

这在生产中不再适用,因为 BOOT-INF 位于构建包 (JAR) 内,而不是可以通过文件系统路径引用的物理文件。

src/main/resources 中的文件被打包为 JAR 以及 BOOT-INF/classes 的一部分。 JAR 内的文件必须通过类路径引用。因此,这两种情况都应该进行设置:

spring.flyway.locations=classpath:/migrations

关于java - Flyway 找不到 Jar 内的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55247708/

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