2015-03-30 25 views
0

所以我有一個Oracle數據庫,我在liquibase中更新...在測試我的數據庫構建系統的過程中,我創建了一個新的更改,其內容與舊更改一個不同的ID。兩者都使用SQL添加具有相同名稱的列。我希望第二個失敗,因爲它試圖創建一個已經存在一列,但liquibase命令updateTestingRollback報道:Liquibase重複changeSet沒有按預期失敗

Liquibase 'updateTestingRollback' Successful 

任何想法的潛在原因可能是什麼?

<changeSet id="2" author="anonymous" failOnError="true"> 
    <sql>ALTER TABLE person ADD (col_a VARCHAR(1));</sql> 
    <rollback>ALTER TABLE person DROP COLUMN col_a;</rollback> 
</changeSet> 
<changeSet id="3" author="anonymous" failOnError="true"> 
    <sql>ALTER TABLE person ADD (col_a VARCHAR(1));</sql> 
    <rollback>ALTER TABLE person DROP COLUMN col_a;</rollback> 
</changeSet> 

回答

0

你可以嘗試用--logLevel=debug標誌運行添加以確保,但我的猜測是應用第二更改SQL時Oracle不返回錯誤代碼。如果使用<sql>標籤而不是更具體的更改類型標籤(即<addColumn>標籤),則liquibase在檢測問題時會遇到更困難的時間。