2015-08-26 67 views
1

當我有一個文件號爲0的文件時,Flyway不會選擇它。當版本號爲0時,Flyway遷移不起作用

Maven的依賴性:

<dependency> 
    <groupId>org.flywaydb</groupId> 
    <artifactId>flyway-core</artifactId> 
    <version>3.2.1</version> 
</dependency> 

Spring配置文件:

<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="baselineOnMigrate" value="true" /> 
    <property name="locations" value="classpath:/META-INF/db/" /> 
    <property name="placeholders"> 
     <map> 
      <entry key="username" value="" /> 
     </map> 
    </property> 
</bean> 

文件中的類路徑:/ META-INF/DB/

  • SQL/V0_1__INITIAL_BUILD.sql(創建一個表)
  • sql/V1_3__from-0.1.sql(增加一列)
  • SQL/V1_4__from-1.3.sql(添加索引表)

當我開始我的服務,我得到這個錯誤

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist 

這是被插入到schema_version表:

 
COLUMN   |ROW1    |ROW2 
version_rank |1     |2 
installed_rank |1     |2 
version   |1     |1.3 
description  |Flyway Baseline |from-0.12 
type   |BASELINE   |SQL 
script   |Flyway Baseline |sql/V1_3__from-0.1.sql 
checksum  |-993203535   | 
installed_by |DBUSER2   |DBUSER2 
installed_on |25-AUG-15   |25-AUG-15 
execution_time |0     |120 
success   1     |0 

它看起來像它忽略了SQL/V0 _1__INITIAL_BUILD.sql文件實際上創建表並立即移動到sql/V1_3__from-0.1.sql並失敗。

命令行工具似乎沒有此問題。

是不是可以使用0作爲使用Spring的版本號還是我錯過了明顯的東西?

回答

3

這是默認情況下更正1是baselineversion從中開始執行所有腳本的順序。而爲了覆蓋從1到0 PLS默認版本使用下面就以XML飛行用的配置: -

<property name="baselineVersion" value="0" /> 

感謝。