Слушайте, а разве Аллюр не был изначально написан человеком, родившимся в Украине?
Ну как. Нет, мы не знали, что могут быть null. Мы думали, что их не должно быть. Их и не было в тестовой среде. А вот в продакшине (куда у нас доступа нет, сами проверить не могли) они оказались. Какие-нибудь дурацкие записи десятилетней давности.
runOnChange помогает так, что на тест-средах, где этот changeset уже пробежал, он второй раз запускаться не будет. А на проде запустится. А до этого changeset мы добавим другой — который, скажем, удаляет эти левые записи. Или прописывает туда ненулевое значение.
P.S. Да, именно из-за H2 мы и используем XML синтаксис LiquiBase. Но так мало кто делает. Многие, например, считают, что тесты надо запускать на той же базе, что и приложение. Например, докер сейчас решает эту проблему.
Легко.
Допустим, был changeset «add NotNull constaint» для колонки X. И он успешно прошёл на всех дев- и тест- средах. А при установке на стэджинг (а может, и в продакшн) он упал, потому что там нашлась запись, в которой X = null. А на всех дев- и тест-средах не было такой записи.
Ну вот как теперь в Flyway разрулить эту ситуацию? Никак. Ручками в базе придётся исправлять.
А в LiquiBase как раз и можно прописать все эти атрибуты «runOnChange», условия и т.д.
Здесь я рассказывал про плюшки LiquiBase: www.youtube.com/watch?v=A3XoEp_3V88
P.S. XML синтаксис для меня как раз спорная фича. Таких проектов, где нужна была бы поддержка нескольких баз, крайне мало. А BD девелоперам, которые уже знают SQL, проще продолжать писать на SQL. Учить новый язык для них — лишняя обуза.
Я использую Liquibase. Он лучше Flyway вот почему:
Его синтаксис xml позволяет каждому changeset прописать дополнительные атрибуты — надо ли его перезапускать при ошибке (или даже каждый раз), надо ли перезапустить при изменении и т.д. в Flyway всё это невозможно.
@roma-marinsky (Что-то у меня кнопка «Ответить» не работает, поэтому отвечу здесь)
С тобой-то мы, конечно, знакомы, но тут же типа сообщество, много читателей — вот и обращаюсь ко всем.
Если не ошибаюсь, Артём Ерошенко из Украины. Да, конечно, это само по себе ничего не меняет — просто спросил...
Насчёт ишью — не знаю, что они думают о войне, но вижу, что у них ещё 300 ишью открыто. Похоже, они в целом не очень-то активно занимаются проектом, и уже давно. Может, дело вовсе не в их политической позиции?