Flyway 找不到 classpath:db/migrations

我现在刚刚在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)

我有以下文件夹:

http://img1.mukewang.com/63107b8900013fe703130164.jpg

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

http://img.mukewang.com/63107b930001070006580157.jpg

所以,我试图返回“classpath:”中的所有文件,请参阅:

http://img4.mukewang.com/63107ba00001dcce06590126.jpg

请注意,我只有“应用程序.属性”文件。


BIG阳
浏览 302回答 5
5回答

呼啦一阵风

这不是那么多有用或准确的答案。但是这个问题让你感到沮丧,所以我给了这个解决方案。注意:奇怪,但这是真的,有时它不允许复制粘贴,因为你的文件夹创建了db.migration,它驱逐了db->迁移(在这种情况下不一样)。因此,每当您从头开始时。转到资源文件夹 -> 创建 DB 文件夹 -> 创建迁移文件夹 -> 使用Version_SubVersion__Name创建数据库文件(定义如下)。通常,这种情况发生在以下情况下,路径不正确,请尝试使用设置位置参数值。db.migrate 文件夹不包含任何文件。检查文件名称 : V1_1__(short_desc)尝试运行使用, mvn 编译 flyway:migrate在我的情况下,我已经把sql文件放在那里,但它仍然给出同样的错误,基本上我使用从某个地方复制粘贴这个sql文件。当我尝试使用IDE在同一位置添加一个新文件时(Intellij:右键单击迁移文件夹->新的->Flyway迁移->版本化迁移),然后它问我(警告)一些微妙的津贴(通常我们在数据库配置中提到我也放在那里),它开始工作。

慕莱坞森

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

子衿沉夜

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

蝴蝶不菲

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

心有法竹

我遇到了类似的错误,并按如下方式解决了它:我添加了这些命令spring.flyway.baselineOnMigrate=truespring.flyway.check-location=truespring.flyway.locations=classpath:db/migrationspring.flyway.schemas=publicspring.flyway.enabled=true到应用程序.属性
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java