Flyway 找不到类路径:db/migrations

Ron*_*las 8 java flyway java-11

我现在刚刚在 Intellij 中开始了一个新项目,使用 Spring Boot ver 2.1.3 和 Flyway 5.2.4 和 Java 11。

尝试开始我的项目后,我得到了:

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)
Run Code Online (Sandbox Code Playgroud)

我有以下文件夹:

在此处输入图片说明

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

在此处输入图片说明

因此,我尝试返回“类路径:”中的所有文件,请参阅:

在此处输入图片说明

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

Suv*_*rna 12

Flyway 至少需要一个脚本,请在application.properties文件中使用以下命令禁用它,直到需要为止

spring.flyway.enabled=false


Dhw*_*tel 9

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

但是这个问题让你感到沮丧,所以我给出了这个解决方案。

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

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

  1. 路径不正确尝试使用设置位置参数值。
  2. db.migrate 文件夹不包含任何文件。
  3. 检查文件名:V1_1__(short_desc)
  4. 尝试运行使用,mvn compile flyway:migrate

在我的情况下,我已经将 sql 文件放在那里,但仍然出现相同的错误,基本上我使用从某处复制粘贴来放置这个 sql 文件。

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

  • 我有一个名为“db.migrations”的文件夹,而不是两个嵌套文件夹“db”和“migrations”内部!一个简单的`mv db.migrations db;mkdir db/migrations` 就成功了。在 IntelliJ 内部,前后看起来是一样的! (2认同)

Guy*_*Guy 5

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