Как получить дельту изменений в Liquibase - PullRequest
0 голосов
/ 26 мая 2020

Мое требование - заставить Liquibase генерировать только обновленные changeSets из БД по сравнению с предыдущими chnageSets .

Допустим, у меня есть две таблицы t1 и t2 в моем postgresql, поэтому в моем changeLog присутствуют два changeSets . Ниже для понимания:

<changelog>
    <changeSet> t1 </changeSet>
    <changeSet> t2 </changeSet>
</changelog>

Теперь, когда я создаю еще одну таблицу t3, changeLog будет выглядеть, как показано ниже:

<changelog>
    <changeSet> t1 </changeSet>
    <changeSet> t2 </changeSet>
    <changeSet> t3 </changeSet> 
</changelog>

Вместо этого я хотите, чтобы ликвибаза сгенерировала нечто подобное приведенному ниже, которое является обновленным изменением:

<changelog>
    <changeSet> t3 </changeSet> 
</changelog>

, чтобы было удобно отправлять обновленные изменения через базы данных.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020
  1. Создайте новую базу данных в пределах PostgreSQL и, если согласно схеме, если она не является частью вашей changeLogFile
  2. Update, новую базу данных с вашим начальным changelog (тот, у которого есть t1 и t2)
  3. Теперь вы можете использовать команду diffChangeLog, помещая --referenceUrl в новую созданную базу данных и --changeLogFile в ваш измененный журнал изменений ( один с t1, t2 и t3). Он создаст changeLog с разницей, которая в вашем случае должна быть t3. При необходимости вы можете указать вывод через --outputFile
0 голосов
/ 27 мая 2020

дух Liquibase заключается в управлении схемой db. Инструмент changeLogGenerate полезен для запуска проекта, но он не предназначен для создания дельты по версиям.

Liquibase должен быть источником, а не следствием.

Eri c

...