From 506e3de515ff4b1b033d04e074ee34590048c7a8 Mon Sep 17 00:00:00 2001 From: msimko81 Date: Wed, 17 Nov 2021 16:54:56 +0100 Subject: [PATCH] Add offline mode support for rollbackSQL Fix for the `OfflineChangeLogHistoryService` - populate tag to the changelog. https://github.com/liquibase/liquibase/issues/2219 --- .../changelog/OfflineChangeLogHistoryService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/liquibase-core/src/main/java/liquibase/changelog/OfflineChangeLogHistoryService.java b/liquibase-core/src/main/java/liquibase/changelog/OfflineChangeLogHistoryService.java index 1081c8312b7..4005f55fa40 100644 --- a/liquibase-core/src/main/java/liquibase/changelog/OfflineChangeLogHistoryService.java +++ b/liquibase-core/src/main/java/liquibase/changelog/OfflineChangeLogHistoryService.java @@ -3,7 +3,9 @@ import liquibase.ContextExpression; import liquibase.Labels; import liquibase.Scope; +import liquibase.change.Change; import liquibase.change.CheckSum; +import liquibase.change.core.TagDatabaseChange; import liquibase.changelog.ChangeSet.ExecType; import liquibase.GlobalConfiguration; import liquibase.database.Database; @@ -244,6 +246,14 @@ protected void appendChangeSet(ChangeSet changeSet, ChangeSet.ExecType execType) csvWriter.writeNext(line); } + String tag = ""; + for (Change change : changeSet.getChanges()) { + if (change instanceof TagDatabaseChange) { + TagDatabaseChange tagChange = (TagDatabaseChange) change; + tag = tagChange.getTag(); + } + } + String[] newLine = new String[Columns.values().length]; newLine[Columns.ID.ordinal()] = changeSet.getId(); newLine[Columns.AUTHOR.ordinal()] = changeSet.getAuthor(); @@ -254,7 +264,7 @@ protected void appendChangeSet(ChangeSet changeSet, ChangeSet.ExecType execType) newLine[Columns.MD5SUM.ordinal()] = changeSet.generateCheckSum().toString(); newLine[Columns.DESCRIPTION.ordinal()] = changeSet.getDescription(); newLine[Columns.COMMENTS.ordinal()] = changeSet.getComments(); - newLine[Columns.TAG.ordinal()] = ""; + newLine[Columns.TAG.ordinal()] = tag; newLine[Columns.LIQUIBASE.ordinal()] = LiquibaseUtil.getBuildVersion(); newLine[Columns.CONTEXTS.ordinal()] = (changeSet.getContexts() == null) ? null : changeSet.getContexts().toString();