使用flyway的时候出现无法找到sql文本的异常,构建工具是用的gradle,开发工具idea,以下是相关代码
gradle.properties
flyway.url= jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8
flyway.user= root
flyway.password= 123456
build.gradle
group 'scheduleTest'
version '1.0-SNAPSHOT'
buildscript{
repositories{
mavenCentral()
}
dependencies{
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.+")
classpath 'org.flywaydb:flyway-gradle-plugin:3.2.+'
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'idea'
apply plugin: 'org.flywaydb.flyway'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:1.2+")
testCompile("org.springframework.boot:spring-boot-starter-test:1.2+")
runtime("mysql:mysql-connector-java:5.1.+")
compile("org.springframework.boot:spring-boot-starter-data-jpa:1.2.+")
testCompile group: 'junit', name: 'junit', version: '4.11'
}
db.migration路径
报错信息
* What went wrong:
Execution failed for task ':flywayMigrate'.
> Error occurred while executing flywayMigrate
Unable to scan for SQL migrations in location: classpath:db/migration
Unable to determine URL for classpath location: db/migration (ClassLoader: java.net.URLClassLoader@1239a1bd)
datasource配置是没有问题的,因为可以成功执行gradle flywayClean命令将数据库所有表清除,然后sql命名也是遵循V<version>__<name>.sql方式,不知道问题处在哪里,还请指点一下,感激不尽 ~!
私自身で答えます
flyway のスクリプト ファイルはデフォルトで src/java/resources/db/migration ディレクトリに配置されるため、パスの問題が原因です。db と migration は親子ディレクトリであることに注意してください。 , しかし、アイデアでは、このディレクトリ関係 src/java/resources/db/migration は次のように表示されます:
,
は私を誤解させましたスクリプトは src/java/resources/db.migration に配置されていますが、ファイル ディレクトリを開くと、実際には異なることがわかります
同様の問題が発生した場合、パスを確認するのが最善です