Comments 4
А с данными-то что будет при rollback колонки таблицы? Rollback поддерживается на уровне структуры в момент внедрения и в ситуации, когда можно/нужно откатить изменение, если оно не собралось на проде
Будет то, что вы пропишите.
Если упростить, то Liquibase выполняет в порядке очереди то, что вы указали. Соответственно если у вас есть данные и не стоит никаких ограничений, то данные удалятся. А иначе нет.
А по факту, такие операции надо тестировать в вашей БД, возможно понадобится добавить больше ALTER
конструкций.
пара вопросов, если позволите.
1) как или откуда скачать дистрибутив ликвидбейса, если официальный сайт в "амазон клауде" и он блокирует получение файлов ? и.е. виндовый дистрибутив с официального сайта не получить
2) я правильно понимаю, что Liquibase не умеет контролировать/запоминать текущую, целевую структуру таблиц, и восстанавливать её, если что-то пошло не так? т.е. он "тупо шпарит патчи" и контролирует их выполнение, не понимая, надо ли для текущей структуры применять патч или нет, даже если это не sql, а опция " - createtable " в yaml-файле с ченджлогом?
т.е. если в работу с таблицами ликвидбейса вмешалась третья сторона или "что-то пошло не так" - мы получаем долгий изнурительный процесс восстановления структуры руками?
поясню на примере: вот прошла миграция, всё патчи/ченджлоги ликвидбейзом применены. теперь какой-то сторонний инструмент удаляет из базы таблицу. ну, так случилось. запускаем систему спрингбут с ликвидбейзом, он при старте проверяет что всё патчи применены, пишет всё хорошо, а потом мы получаем исключения при выполнении запросов, что relation в базе не существует.
как заставить ликвидбейз проверять целевую структуру бд, сравнивать её с целевой и применять изменения фрагментарно ? например - восстановить таблицу если она была "случайно" удалена?
----------
заранее спасибо.
UPD: скачивание дистрибутивов https://www.liquibase.com/open-source они вроде поправили. вопрос 1 отпадает. но что делать со вторым пунктом?
Инфраструктура для Data-Engineer Liquibase