Liquibase与标签和上下文有关

时间:2016-06-16 09:30:53

标签: liquibase

我们正在使用LB 3.5。以下是主更改日志

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">


    <!-- v13.0.00 -->
    <include context="v13_0_00_03" file="changelog-v13.0.00.03.xml" relativeToChangelogFile="true"/>
    <include context="v13_0_00_04" file="changelog-v13.0.00.04.xml" relativeToChangelogFile="true"/>

</databaseChangeLog>

现在在changelog-v13.0.00.03.xml中我们有这些changeSets:

<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">

<changeSet id="CT-39_1" author="auth1" failOnError="false"  runOnChange="false" labels="DDL">
    <sqlFile encoding="utf8" endDelimiter="\nGO" path="../scripts/ddl/ddl.sql" relativeToChangelogFile="true" />
</changeSet>

<changeSet id="CT-2" author="auth2"   runOnChange="false" labels="TRIGPROC">
    <preConditions onFail="CONTINUE">
        <changeSetExecuted id="CT-39_1" author="auth1" />
    </preConditions>
    <sqlFile encoding="utf8" endDelimiter="\nGO" path="../scripts/trigprocs/sp_ins1.sql" relativeToChangelogFile="true"/>
</changeSet>

<changeSet id="CT-18" author="auth3"   runOnChange="false" labels="TRIGPROC">
    <sqlFile encoding="utf8" endDelimiter="\nGO" path="../scripts/trigprocs/sp_ins2.sql"
             relativeToChangelogFile="true"/>
</changeSet>

<changeSet id="CT-2228" author="auth4" runOnChange="false" labels="CONFIG">
    <sqlFile encoding="utf8" endDelimiter="\nGO" path="../scripts/config/insert_rec.sql" relativeToChangelogFile="true"/>
</changeSet>

以下命令正常工作,因为我希望看到v13.0.00.03的SQL文件并标记为CONFIG:

liquibase --contexts=v13_0_00_03  --labels=CONFIG updateSQL

但是这个命令没有工作

liquibase --contexts=v13_0_00_03  --labels="CONFIG, DDL" updateSQL

它只为CONFIG而不是DDL生成SQL。我试过了#34; CONFIG或DDL&#34;,没有运气。

另一个问题是,如果我更改了标签&#39;属性在changeSets到&#39; context&#39;,LB没有使用--contexts =&#34; v13_0_00_03,CONFIG&#34;生成任何内容。

这些错误或我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一可能性是已经应用了DDL更改。您将变更集标记为DDL为runOnChange=false,因此即使文件已更改,也不会重新运行。