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