为了账号安全,请及时绑定邮箱和手机立即绑定

Flyway 找不到 classpath:db/migrations

Flyway 找不到 classpath:db/migrations

BIG阳 2022-09-01 17:29:27
我现在刚刚在Intellij中开始了一个新项目,使用Spring Boot版本2.1.3和带有Java 11的Flyway 5.2.4。尝试启动我的项目后,我得到了: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)我有以下文件夹:如您所见,我有“db /migration”,但没有任何迁移,我现在才刚刚开始。调试类FlywayAutoConfiguration i得到了以下内容:所以,我试图返回“classpath:”中的所有文件,请参阅:请注意,我只有“应用程序.属性”文件。
查看完整描述

5 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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

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

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

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

  1. 路径不正确,请尝试使用设置位置参数值。

  2. db.migrate 文件夹不包含任何文件。

  3. 检查文件名称 : V1_1__(short_desc)

  4. 尝试运行使用, mvn 编译 flyway:migrate

在我的情况下,我已经把sql文件放在那里,但它仍然给出同样的错误,基本上我使用从某个地方复制粘贴这个sql文件。

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


查看完整回答
反对 回复 2022-09-01
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

Flyway 至少需要一个脚本,禁用它,直到您需要它,方法是在 application.properties 文件中使用以下命令

spring.flyway.enabled=false


查看完整回答
反对 回复 2022-09-01
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

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


查看完整回答
反对 回复 2022-09-01
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

我有同样的问题。当我创建目录时,我只是简单地键入 - 就像处理包名称一样。InteliJ 将同时显示和目录为 ,因此虽然它在 IntelliJ 中看起来可能是正确的,但 flyway 需要后者。db.migrationdb.migrationdb/migrationdb.migration



查看完整回答
反对 回复 2022-09-01
?
心有法竹

TA贡献1866条经验 获得超5个赞

我遇到了类似的错误,并按如下方式解决了它:我添加了这些命令


spring.flyway.baselineOnMigrate=true

spring.flyway.check-location=true

spring.flyway.locations=classpath:db/migration

spring.flyway.schemas=public

spring.flyway.enabled=true

到应用程序.属性


查看完整回答
反对 回复 2022-09-01
  • 5 回答
  • 0 关注
  • 300 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信