Мы меняем наш сценарий развертывания на использование liquidibase, но теперь у меня возникают некоторые проблемы, которые я хотел бы получить по другому поводу или, может быть, знаю подходящее решение для этого.Передовая практика - использование пакетов LiquiBase
Мы используем Oracle, и у нас есть много устаревшего кода: пакеты, функции, процедуры, триггеры .. (как вы можете видеть, много логики в базе данных).
Мы используем структуру последующей:
.
..
packages
functions
triggers
baseline
S1301
S1302
S1312
xxx-changelog.xml
хх-changelog.xml выглядит следующим образом:
<include file="baseline/xxx-baseline-changelog.xml" relativeToChangelogFile="true" />
<!- Sprint change logs -->
<include file="S1304/xxx-s1304-changelog.xml" relativeToChangelogFile="true" />
<include file="S1308/xxx-s1308-changelog.xml" relativeToChangelogFile="true"/>
<include file="S1309/xxx-s1309-changelog.xml" relativeToChangelogFile="true"/>
<include file="S1310/xxx-s1310-changelog.xml" relativeToChangelogFile="true"/>
<include file="S1311/xxx-s1311-changelog.xml" relativeToChangelogFile="true"/>
Потому что мы не хотим, чтобы скопировать файл каждый раз, когда в новую папку, мы указываем на тот же файл, и поскольку мы меняем контент, мы должны установить runOnChange свойство, потому что, т это не сработает.
Дело в том, что мы работаем в Agile, и каждые 3 недели мы поставляем новый код, иногда нам приходится менять один пакет за один спринт, и мы должны изменить один и тот же пакет в следующем.
Моя ситуация:
1), если добавить новую ревизию для каждого спринта, указывая на файл в папке пакетов, например, с runOnchange, это будет выполнять все ревизии, которые указывают на эти файл, потому что контент отличается, и runOnchange (это не то, что я хочу). Но это единственный способ узнать об изменениях в спринте и проследить за этим.
ххх-S1311-changelog.xml
<changeSet id="XXX_SEND_TO_PP_PCK_S1311" author="e-ballo" runOnChange="true">
<sqlFile path="../packages/XXX_SEND_TO_PP_PCK.pkb" splitStatements="false" relativeToChangelogFile="true"/>
</changeSet>
ххх-s1312-changelog.xml
<changeSet id="XXX_SEND_TO_PP_PCK_S1312" author="e-ballo" runOnChange="true">
<sqlFile path="../packages/XXX_SEND_TO_PP_PCK.pkb" splitStatements="false" relativeToChangelogFile="true"/>
</changeSet>
2) если мы создадим файл только для пакетов (пакеты-changelog.xml), и мы добавляем changeSet для пакета с свойством runOnChange, который будет запускаться каждый раз, когда файл изменяется, но у вас нет видимости, когда мы его меняем.
Возможно, лучшим решением является копирование файла (пакета) в папку спринта, но я хотел бы сохранить историю файла в SVN, а также иметь четкое представление о новых изменениях для спринта в журнале изменений.
Мой вопрос:
Так что вы знаете, ребята, если есть какой-то способ, чтобы отключить HashMap в LiquiBase? то я смогу добавить его в каждый спринт и иметь трек .. и если идентификатор уже в базе данных не должен выполняться снова, я прав?
Спасибо заранее,
Другими словами есть какой-либо способ исключить контрольную сумму в changeSet? – eballo