我现在刚刚在 Intellij 中启动了一个新项目,使用 Spring Boot 版本 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)
我有以下文件夹:
正如你所看到的,我有“db/migration”,但没有任何迁移,我现在才开始。调试 FlywayAutoConfiguration 类我得到以下信息:
所以,我尝试返回“classpath:”中的所有文件,请参阅:
请注意,我只有“application.properties”文件。
这不是那么有用或准确的答案。
但是这个问题让你感到沮丧,所以我给出了这个解决方案。
Note:奇怪,但确实如此,有时不允许复制粘贴,因为您的文件夹创建了 db.migration 并且它包含 db->migration(在这种情况下不一样)。所以每当你从头开始。转到资源文件夹 -> 创建数据库文件夹 -> 创建迁移文件夹 -> 使用 Version_SubVersion__Name 创建数据库文件(如下定义)。
通常这种情况发生在以下情况,
- 路径不正确尝试使用设置位置参数值。
- db.migrate 文件夹不包含任何文件。
- 检查文件名:V1_1__(short_desc)
- 尝试使用 mvncompileflyway:migrate 运行
就我而言,我已经将 sql 文件放在那里,但仍然给出相同的错误,
基本上我使用从某处复制粘贴来放置此 sql 文件。
当我尝试使用 IDE 在同一位置添加一个新文件时(Intellij:右键单击迁移文件夹 -> 新 -> Flyway 迁移 -> 版本化迁移),然后它会询问我(警告)一些微妙的津贴(通常我们在数据库配置我也仍然放在那里),然后它开始工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)