찾다

 >  Q&A  >  본문

java - flyway 无法识别sql,Unable to scan for SQL migrations in location。

使用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方式,不知道问题处在哪里,还请指点一下,感激不尽 ~!

PHP中文网PHP中文网2814일 전812

모든 응답(1)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:15:01

    답변
    Flyway 스크립트 파일은 기본적으로 src/java/resources/db/migration 디렉터리에 위치하므로 경로 문제로 인해 발생합니다. 참고로 db 및 migration은 상위-하위 디렉터리입니다. 하지만 아이디어상 이 디렉터리 관계 src/java/resources/db/migration은 다음과 같이 표시됩니다.
    ,
    으로 인해 다음과 같이 잘못 생각하게 되었습니다. 스크립트는 src/java/resources/db.migration에 있는데, 파일 디렉터리를 열어보면 둘이 실제로는 다르다는 걸 알 수 있습니다
    유사한 문제가 발생하면 , 경로를 확인하는 것이 가장 좋습니다

    회신하다
    0
  • 취소회신하다