java
  • gradle
  • flyway
  • 2016-01-22 23 views 2 likes 
    2

    我們在我們的java,基於gradle spring的MVC應用程序中使用了flyway。我已將我的SQL文件保存在src/main/resources/db/migration文件夾中。爲什麼flyway忽略我的SQL遷移文件?

    下面是我的flyway gradle配置文件。

    apply plugin: "org.flywaydb.flyway" 
    
    flyway { 
        driver = 'com.mysql.jdbc.Driver' 
        url = "jdbc:mysql://localhost:3306/java_app_test" 
        user = 'root' 
        password = '' 
        schemas = ['java_app_test'] 
        outOfOrder = true 
        locations = [ 
          //"filesystem:${project.projectDir}/dbScripts/migrations" 
          "classpath:db/migration" 
        ] 
    } 
    

    當我運行gradle這個flywayBaseline我得到的輸出如下。

    13:57:06.291 [DEBUG] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] Found resource: db/migration/20160121042238016__initial.sql 
    13:57:06.292 [DEBUG] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] Found resource: db/migration/20160122081606826__initial.sql 
    13:57:06.311 [DEBUG] [org.flywaydb.core.internal.command.DbSchemas] Schema `java_app_test` already exists. Skipping schema creation. 
    13:57:06.358 [DEBUG] [org.flywaydb.core.internal.metadatatable.MetaDataTableImpl] MetaData table `java_app_test`.`schema_version` successfully updated to reflect changes 
    13:57:06.422 [INFO] [org.flywaydb.core.internal.command.DbBaseline] Schema baselined with version: 1 
    

    它找到我的sql文件,但它不執行它。

    當我運行flywayMigrate我獲得以下輸出

    14:12:41.285 [DEBUG] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] Filtering out resource: db/migration/20160121042238016__initial.sql (filename: 20160121042238016__initial.sql) 
    14:12:41.285 [DEBUG] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] Filtering out resource: db/migration/20160122081606826__initial.sql (filename: 20160122081606826__initial.sql) 
    14:12:41.314 [INFO] [org.flywaydb.core.internal.command.DbValidate] Validated 1 migration (execution time 00:00.047s) 
    14:12:41.335 [DEBUG] [org.flywaydb.core.internal.command.DbSchemas] Schema `java_app_test` already exists. Skipping schema creation. 
    14:12:41.351 [DEBUG] [org.flywaydb.core.internal.dbsupport.Table] Locking table `java_app_test`.`schema_version`... 
    14:12:41.354 [DEBUG] [org.flywaydb.core.internal.dbsupport.Table] Lock acquired for table `java_app_test`.`schema_version` 
    14:12:41.358 [INFO] [org.flywaydb.core.internal.command.DbMigrate] Current version of schema `java_app_test`: 1 
    14:12:41.358 [WARN] [org.flywaydb.core.internal.command.DbMigrate] outOfOrder mode is active. Migration of schema `java_app_test` may not be reproducible. 
    14:12:41.359 [INFO] [org.flywaydb.core.internal.command.DbMigrate] Schema `java_app_test` is up to date. No migration necessary. 
    14:12:41.361 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':flywayMigrate' 
    

    什麼是這裏的問題?

    +0

    順便說一句,不需要指定驅動程序。 Flyway根據網址爲您自動檢測。 –

    回答

    6

    sqlMigrationPrefix默認爲V,您的文件不以它開頭。重命名您的文件或將前綴設置爲空值。

    相關問題