Расширение (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-файле? Возможно ли это?