Я организую процесс автоматической доставки с использованием GIT, Bamboo, Ansible и Liquibase.Liquibase - различные версии файла
У меня возникли проблемы с использованием функции отката Liquibase. В основном у меня есть те же файлы, мой мастер изменения и файлы версий (каждый из которых имеет свой собственный раздел отката), в двух разных местах, например, в папке «обновления» и в папке «откат». Несмотря на то, что файлы одинаковы, откат просто не работает. Иллюстрирование:
+ deployment_folder
+ update
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
+ rollback
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
Файлы имеют одинаковый контент.
Запуск LiquiBase обновлений и мечения прекрасно:
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.0
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.1
Однако при попытке откатить от 1.0.1 до 1.0.0 с помощью изменения набора мастер в откате папок он говорит «LiquiBase Откат Successful» но изменения не откатываются. команда rollbackSQL также не отображает никакого соответствующего оператора SQL, кроме обновлений DATABASECHANGELOGLOCK.
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=rollback/changeset-master.xml rollback 1.0.0
Похоже, файл должен быть точно такой же (для контрольной суммы, я полагаю), что шоу блокатор в моем случае, когда я должен постоянно тянуть версии из моей системы управления версиями, так что файлы будут никогда не быть «одинаковыми», хотя они имеют одинаковое содержание. Есть ли способ отключить эту проверку в Liquibase? В настоящее время я использую Liquibase 3.4.2.
Я забыл упомянуть, если я запустил откат с тем же файлом, он работает. –
Оформить заказ ['logicalFilePath'] (http://www.liquibase.org/documentation/databasechangelog.html). Насколько я помню, контрольная сумма включает в себя имя файла с полным путем. Поэтому, даже если у вас один и тот же файл в другой папке, это считается по-другому. Использование 'logicalFilePath' должно избегать этого. – Jens
Дженс, ты понял. Это точно. Большое спасибо! –