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
这不是那么有用或准确的答案。
但是这个问题让你感到沮丧,所以我给出了这个解决方案。
注意:奇怪但确实如此,有时它不允许复制粘贴,因为您的文件夹创建了 db.migration 并且它expact db->migration(在这种情况下不一样)。所以每当你从头开始。转到资源文件夹 -> 创建 DB 文件夹 -> 创建迁移文件夹 -> 使用 Version_SubVersion__Name(定义如下)创建数据库文件。
通常会在以下情况下发生这种情况,
在我的情况下,我已经将 sql 文件放在那里,但仍然出现相同的错误,基本上我使用从某处复制粘贴来放置这个 sql 文件。
当我尝试使用 IDE(Intellij:右键单击迁移文件夹 -> 新建 -> Flyway 迁移 -> 版本化迁移)在同一位置添加一个新文件时,它会询问我(警告)一些微妙的津贴(通常我们在数据库配置我也仍然放在那里),它开始工作。
我相信 Flyway 至少需要一个迁移脚本来初始化。尝试将一个简单的 sql 创建脚本添加到您的迁移文件夹中,然后再试一次。或者,您可以禁用 flyway 依赖项,直到需要它为止。
| 归档时间: |
|
| 查看次数: |
17064 次 |
| 最近记录: |