Liquibase порядок выполнения изменений внутри changeSet - PullRequest
0 голосов
/ 28 июня 2018

Мы используем жидкость для разделения колонки на две колонки. Это происходит в три изменения:

  1. Добавить новые столбцы с помощью addColumn
  2. Вставка данных из старого столбца в новые с помощью customChange
  3. Удалить старый столбец с помощью dropColumn

Это прекрасно работает, но я не могу найти никакой документации о порядке исполнения Изменения . Я нашел только документацию по порядку исполнения changeSets , см. здесь .

Гарантирует ли liquibase, что изменения выполняются последовательно в порядке их появления?

1 Ответ

0 голосов
/ 28 июня 2018

Я никогда не видел никакой документации об этом, но по моему опыту - он выполняет изменения внутри набора изменений последовательно в порядке их появления.

Кроме того, я не считаю хорошей практикой объединять все вышеперечисленные изменения в один changeSet, поскольку, как указано в предоставленном вами документе:

Liquibase пытается выполнить каждый набор изменений в транзакции, которая фиксируется в конце, или откатывается в случае ошибки. Некоторые базы данных будут автоматически фиксировать операторы, которые вмешиваются в эту настройку транзакции и могут привести к непредвиденному состоянию базы данных. Поэтому, как правило, лучше всего иметь только одно изменение на набор изменений, если только не существует группы изменений без автоматической фиксации, которые вы хотите применить в качестве транзакции, такой как вставка данных.

Я предлагаю разделить ваш changeSet на три атомарных с соответствующим preConditions или создать для него правильный rollback.

...