Расширение (extension) для liquibase, которое изменяет расчет чексуммы (CheckSum). Как получить исходный SQL-скрипт?

Есть решение как сделать так, чтобы при изменении в SQL-крипте слова "alpha" на "beta" или на "gamma" чексумма не менялась для ченджсета с тегом <sql>.

@DatabaseChange(name = "sql", description = "SQL", priority = ChangeMetaData.PRIORITY_DATABASE + 50)
public class MyRawSQLChange extends RawSQLChange {
    @Override
    public CheckSum generateCheckSum() {
        String sql = getSql();
        String newSql = sql.replace("alpha", "x")
                .replace("beta", "x").replace("gamma", "x");
        setSql(newSql);
        CheckSum checkSum = super.generateCheckSum();
        setSql(sql);
        return checkSum;
    }
}

В функции написанной выше в первом операторе String sql = getSql(); получаем строку с SQL-скриптом, в этой строке уже выполнены подмены свойств (property), то есть вхождения типа ${???} уже заменены на свойства. Как в этой функции получить SQL-скрипт до этой подмены? То есть получить SQL-скрипт в том виде, в котором он хранится в XML-файле? Возможно ли это?


Ответы (0 шт):