当前位置: 首页 > 知识库问答 >
问题:

如何读取Java和SQL迁移从同一文件夹在Flyway

裴建华
2023-03-14

我正在使用Java和SQL迁移,使用Flyway,使用JavaAPI。我没有更改迁移文件夹的默认位置,也就是说,我使用“数据库/迁移”。

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

这可能吗?

共有1个答案

戎泰
2023-03-14

Flyway从src/main/java/db/迁移读取Java迁移

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

您的构建工具Gradle/Maven等将寻找。java源文件在src/main/java中,编译它们并将类放在一些输出目录中,例如,build/classes/java/main/code>,target/classes/code>等。正是这个输出目录的内容位于类路径上,因此对Flyway可见。

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

例如,在Gradle中,类似的操作可能会起作用(未测试-有关更多信息,请参阅文档):

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

 类似资料:
  • 问题内容: 我开发了一个应用程序,可以从用户选择的文件夹中读取文件。它显示每个文件中有多少行代码。我只希望Java文件显示在文件选择器(扩展名为.java的文件)中。下面是我的代码: 我也进行了编辑,但是仍然无法正常工作,请告知请告知如何仅读取扩展名为.java的文件,换句话说,请仅从文件夹中读取java文件,请告知 问题答案: 您需要一个FilenameFilter。这应该为您工作:

  • 问题内容: 如何通过Java读取文件夹中的所有文件? 问题答案: Java 8提供了Files.walk API。

  • 我有一个名为的项目,它有以下结构: 所以这两个文件的路径是: 我想读测试文件。TestDataProvider中的json。JAVA 我曾经用过 我看到从URL res=getClass(). getClassLoader(). getResources("testfile.json")返回; 有人能帮我吗?

  • 以下是我得到的错误: 提前感谢!

  • 如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。

  • 我一直在尝试制作可以读取与它相同目录中的csv文件的jar应用程序。然而,事实证明这很困难,因为我目前访问该文件的方法是: 它适用于在IDE中运行的程序和测试,但在从编译的jar文件运行程序时不起作用。我不知道如何让它对这两者都起作用。我真的不能理解这个路径的东西,似乎有一百万种方法可以做到这一点,其中只有一种只适用于一个特定的场景。