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) |
我有以下文件夹:
如您所见,我具有" db / migration"但没有任何迁移,我现在就开始。 调试类FlywayAutoConfiguration我得到以下信息:
因此,我尝试返回" classpath:"中的所有文件,请参见:
请注意,我只有" application.properties"文件。
这不是有用或准确的答案。
但是,此问题使您感到沮丧,因此我给出了此解决方案。
注意:奇怪,但这是事实,有时不允许复制粘贴,因为您的文件夹创建了db.migration并且它精确地表示db-> migration(在这种情况下是不一样的)。因此,每当您从头开始时。转到资源文件夹->创建数据库文件夹->创建迁移文件夹->创建具有Version_SubVersion__Name(定义如下)的数据库文件。
通常在以下情况下会发生这种情况,
就我而言,我已经将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