использование liquibase в существующей схеме

Я читал о том, как вы можете генерировать изменений.xml из существующей схемы. Это хорошо, но у меня есть существующие системы, которые я не хочу трогать, кроме как вносить новые изменения. У меня также есть совершенно новые системы, которые требуют применения всех изменений.

Итак, я хочу, чтобы liquibase выполнял миграции только из набора изменений X при работе в существующей системе. Т. е. БД этой системы находится в редакции X-1 (но без таблиц liquibase sys), и я не хочу никаких предварительных применяются миграции.

большое спасибо, ПЭТ!--1-->

2 ответов


Я думаю, что проще всего было бы сначала выполнить начальную настройку на пустой базе данных и экспортировать запись (записи), которую liquibase вставляет в DATABASECHANGELOG таблица. Затем я бы экспортировал эти записи и вставлял их вручную в одну из целевых баз данных в их DATABASECHANGELOG таблица, поэтому liquibase не выполняет "изменение" там снова.

конечно, я бы проверил все это с тестовыми дампами на тестовой машине... :)


Я бы рекомендовал немного другой подход, как прокомментировано в этом Liquibase форум нить

  1. создать список из существующих схем. Liquibase CLI может сделать это для вас. Обычно я беру полученный XML и немного сглаживаю его (групповые изменения в отдельные журналы изменений, выполняю очистку для конкретного поставщика и т. д.), Но Liquibase выполняет большую часть работы.

  2. запустите этот журнал изменений против существующая база данных (changelogSync command), но только помечая его как примененный (без фактического изменения схемы).

  3. используйте liquibase для применения новых изменений с этого момента.