问题描述:
1. 今天使用flyway,建了目录db.migration,以及生成表的sql文件。
2.运行的时候报错,找不到db/migration找不到文件。
具体错误:
最外层,实例化flyway失败:
BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]
具体原因,找不到升级文件在[classpath:db/migration]目录下:
IllegalStateException: Cannot find migrations location in: [classpath:db/migration]
分析:
1. 首先想到的是这下边的文件是否有误,但是直接使用以前项目的sql文件,同样有错。
2. 根据错误可以发现,错误是在实例化之前发生的,一般实例化有误,很有可能和配置文件有关,而flyway的配置很简短:
3. 之后,打开idea的Project Settings中的Modules,看到resources文件夹下:
这个就有点不对了,经过比对,发现正确的路径应该是:
这时候就想起来,之前新建db.migration文件夹时,是直接输入的db.migration,而正确的输入应该是db/migration。
结论:
**. 虽然在目录中显示的都是db.migration,但是,新建时,使用db.migration和db/migration是不一样的。前者是一个文件夹,而后者是两个文件夹。