Мы пытаемся проверить предварительное условие Liquibase, существует ли уже составной индекс, прежде чем мы его создадим. Причина: компания, которой мы продали программное обеспечение, запускала наборы изменений для оптимизации в нашей базе данных, которые мы теперь также хотим включить в нашу базу данных. Но мы не знаем названия используемых ими индексов.
Пока у нас есть это:
<changeSet id="changeset-id" author="great-author">
<preConditions onFail="MARK_RAN">
<not>
<and>
<indexExists indexName="idx_fields"/>
<indexExists tableName="my_table" columnNames="id,name"/>
</and>
</not>
</preConditions>
<createIndex tableName="my_table" indexName="idx_fields">
<column name="id"/>
<column name="name"/>
</createIndex>
</changeSet>
теперь, когда клиент запустил это изменение вручную в этой базе данных:
create index company_schema.IDX1_FIELDS on company_schema.MY_TABLE("ID", "NAME") TABLESPACE USERS;
Затем наши наборы изменений не работают, и развертывание застревает.
Похоже, что наше второе предварительное условие, которое проверяет составной индекс по именам столбцов, не работает.
Кто может нам здесь помочь?