Как выполнить откат базы данных до исходной версии с помощью Liquibase? - PullRequest
0 голосов
/ 08 мая 2018

У меня есть существующая база данных (версия x), и я могу сгенерировать файл ChangeLog, используя следующую команду

mvn liquibase:generateChangeLog -Dliquibase.outputChangeLogFile=d:\output.xml

После этого я пытаюсь удалить одну таблицу из базы данных напрямую. Как я могу использовать Liquibase?откатить мою базу данных до версии x?

1 Ответ

0 голосов
/ 08 мая 2018

После того, как вы начали использовать Liquibase, вам следует избегать внесения изменений непосредственно в базу данных.

Давайте упростим сценарий, чтобы его было проще описать. Скажем, в версии x в вашей базе данных есть одна таблица с именем TABLE1 и ничего больше. Вы запускаете команду generateChangeLog и получаете журнал изменений, в котором есть один набор изменений с надписью «создать таблицу TABLE1». Когда Liquibase создает этот набор изменений, он дает ему идентификатор. После создания журнала изменений вы захотите записать в эту базу данных, что база данных и журнал изменений синхронизированы, выполнив команду liquibase changelogSync - это создаст вторую таблицу с именем DATABASECHANGELOG и добавит в нее строку с идентификатор набора изменений и некоторая другая информация.

Если вы затем удалите таблицу вручную, Liquibase не «узнает», что вы сделали это, поэтому вам также необходимо вручную сообщить liquibase, что вы сделали это удаление. Это можно сделать, удалив строку из таблицы базы данных exchangelog. Затем вы можете заново создать таблицу и вернуться к версии x, выполнив команду liquibase update.

...