2012-09-18 36 views
0

我不能馬上看到,當前文檔中我在看:我可以在Liquibase回滾部分使用<include file =「...」/>嗎?

將在Liquibase以下工作,並使用回滾包含的SQL文件?

<changeSet author="username" id="85138"> 
    <sql splitStatements="false"> 
     UPDATE some_table ...; 
    </sql> 
    <rollback> 
     <include file="path/to/rollback.sql"/> 
    </rollback> 
</changeSet> 

如果我已經錯過了文檔中的適當的位置,隨意點出的相關部分。

回答

6

你可以做的是使用SQLFILE:

<changeset ..> 
    <sql>...</sql> 
    <rollback> 
    <sqlFile path="rollback.sql" /> 
    </rollback> 
</changeset> 

正如另一篇文章中所提到的,包括僅用於更新日誌組成 - 包括其他更新日誌。

+0

這裏是'sqlFile'標籤的文檔:http://www.liquibase.org/manual/custom_sql_file –

+0

@Mirko ..所以如果我做了10個與變更前進的變化,它自己的變更集中的10個變化, DatabaseChangeLog表將包含10個條目。使用上面的回滾sqlfile方法..當我運行回滾命令時,表中的10條記錄會被刪除嗎? –

0

不,那不行。包含標記旨在包含更多更新日誌XML文件,而不是用於包含任意信息。

它記錄在這裏:http://www.liquibase.org/manual/include

它沒有說你「不能」明確,但我想它 - liquibase會罵你吧。 =)

+0

這在技術上是正確的,給出的問題,但請參閱@ Mirko的答案(http://stackoverflow.com/a/12772067/26196)和此文檔:http://www.liquibase.org/manual/custom_sql_file –

相關問題