gpt4 book ai didi

java - 如何从 Flyway 中的同一文件夹读取 Java 和 SQL 迁移

转载 作者:行者123 更新时间:2023-11-30 05:38:03 26 4
gpt4 key购买 nike

我使用 Flyway 和 Java API 进行 Java 和 SQL 迁移。我没有更改迁移文件夹的默认位置,即我使用“db/migration”。

但是,为了清楚起见,我希望将 SQL 和 Java 迁移放在同一个文件夹中(Flyway 从 src/main/java/db/migration 文件夹读取 Java 迁移,从 src/读取 SQL 迁移)主/资源/数据库/迁移)。我尝试将 SQL 脚本复制到 java 文件夹,但 Flyway 忽略它们。

这可能吗?

最佳答案

Flyway reads the Java migrations from src/main/java/db/migration

不完全是。默认情况下,Flyway 从类路径读取 Java 迁移(和 SQL 迁移)。 src/main/java 包含源文件,而不是类。

您的构建工具 Gradle/Maven 等将在 src/main/java 中查找 .java 源文件,编译它们并将类放入某个输出目录中,例如build/classes/java/maintarget/classes 等。此输出目录的内容将位于类路径上,因此对 Flyway 可见。

为了将 .sql 文件从源目录获取到类路径,需要告诉您的构建工具复制它们。

例如,在 Gradle 中,类似的东西可能会起作用(未经测试 - 请参阅 docs 了解更多信息):

sourceSets {
main {
resources {
srcDir file('src/main/resources')
include '**/*.sql'
exclude '**/*.java'
}
}
}

关于java - 如何从 Flyway 中的同一文件夹读取 Java 和 SQL 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236323/

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