Тег Liquibase Modifysql с тегом SQL в том же наборе изменений не работает - PullRequest
0 голосов
/ 11 мая 2018

liquibase: cvc-complex-type.2.4.a: Обнаружено недопустимое содержание, начиная с с элементом 'sql'. Один из '{"http://www.liquibase.org/xml/ns/dbchangelog":modifySql}' является ожидается.

Получение ошибки для этого набора изменений

<changeSet id="18.7.0.1-1-userTable" author="so">
    <preConditions onFail="MARK_RAN">
        <not>
            <tableExists tableName="USER_CURRENT"/>
        </not>
    </preConditions>
    <createTable tableName="USER_CURRENT">
        <column name="name" type="VARCHAR(20)">
            <constraints primaryKey="true" nullable="false" primaryKeyName="name"/>
        </column>

    </createTable>
    <modifySql dbms="mysql">
        <append value=" PARTITION BY KEY() PARTITIONS 16"/>
    </modifySql>
    <modifySql dbms="oracle">
        <append value=" ORGANIZATION INDEX PARTITION BY HASH (name) PARTITIONS 16 PARALLEL 4"/>
    </modifySql>
    <sql>GRANT SELECT ON USER_CURRENT TO 'reportsUser'@'%';</sql>       
</changeSet>

1 Ответ

0 голосов
/ 11 мая 2018

Причина в том, что вы не можете иметь sql после modifySql тега внутри changeSet.Вам придется либо поставить sql перед modifySql, либо просто разделить их на разные changeSets.

Это следует из dbchangelog-3.1.xsd.

...