关于Java:Flyway找不到类路径:db / migrations

Flyway can't find classpath:db/migrations

我现在刚刚开始使用Intellij Spring Boot 2.1.3和带有Java 11的Flyway 5.2.4在Intellij中启动一个新项目。

在尝试启动我的项目后,我得到了:

1
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is java.lang.IllegalStateException: Cannot find migrations location in: [classpath:db/migration] (please add migrations or check your Flyway configuration)

我有以下文件夹:

enter image description here

如您所见,我具有" db / migration"但没有任何迁移,我现在就开始。 调试类FlywayAutoConfiguration我得到以下信息:

enter image description here

因此,我尝试返回" classpath:"中的所有文件,请参见:

enter image description here

请注意,我只有" application.properties"文件。


这不是有用或准确的答案。

但是,此问题使您感到沮丧,因此我给出了此解决方案。

注意:奇怪,但这是事实,有时不允许复制粘贴,因为您的文件夹创建了db.migration并且它精确地表示db-> migration(在这种情况下是不一样的)。因此,每当您从头开始时。转到资源文件夹->创建数据库文件夹->创建迁移文件夹->创建具有Version_SubVersion__Name(定义如下)的数据库文件。

通常在以下情况下会发生这种情况,

  • 路径不正确,请尝试使用设置的位置参数值。
  • db.migrate文件夹不包含任何文件。
  • 检查文件名:V1_1 __(short_desc)
  • 尝试运行,使用mvn编译flyway:migrate
  • 就我而言,我已经将sql文件放在那儿了,但仍然给出了相同的错误,
    基本上我使用复制粘贴从某个地方放置此sql文件。

    当我尝试使用IDE在同一位置添加一个新文件(Intellij:右键单击迁移文件夹->新建-> Flyway迁移->版本化迁移)时,它会问我(警告)一些微妙的配额(通常我们会在数据库配置,我也放在那里仍然),它开始工作。


    我相信Flyway至少需要一个迁移脚本才能初始化。尝试将简单的sql创建脚本添加到您的迁移文件夹中,然后再尝试一次。或者,您可以禁用飞行依赖,直到需要它为止。


    我遇到了类似的错误,并按以下步骤解决:我添加了以下命令

    1
    2
    3
    4
    5
    spring.flyway.baselineOnMigrate=true
    spring.flyway.check-location=true
    spring.flyway.locations=classpath:db/migration
    spring.flyway.schemas=public
    spring.flyway.enabled=true

    到application.properties