Базовая линия Flyway и outOfOrder вместе

Мне интересно, как можно заставить базовую линию Flyway и outOfOrder работать вместе?

Флаг outOfOrder можно использовать, когда вы работаете с ветвями, поэтому, если шаги появляются в «прошлом», для них не устанавливается значение «Игнорируется», но они выполняются после появления. Например, если они прибывают с веткой.

т.е. база данных имеет шаги 1.0, 1.1, 1.2, и к ней есть патч 2.2. Затем 2.0 и 2.1 поставляются с обычным выпуском, но они имеют номер ‹2.2, поэтому для их установки необходимо использовать outOfOrder.

Проблема возникает, когда в ветке создается новая база данных, содержащая версии 1.0, 1.1, 1.2 и 2.2, и добавляется базовая версия. Теперь базовый уровень говорит Flyway ПРОПУСТИТЬ все, что было раньше. Поэтому, когда выходят 2.0 и 2.1, они пропускаются, они даже не помечаются как игнорируемые, они автоматически становятся частью базовой линии.

Итак, я думаю о том, что, возможно, вместо того, чтобы базовый план был всемогущим шагом, вместо этого он должен быть «фальшивым успехом» на известных в настоящее время этапах установки. Есть ли лучший способ или как это сделать?


person Alluir    schedule 09.04.2018    source источник
comment
Почему базовый уровень был добавлен в ваш сценарий? Насколько я понимаю, если вы используете базовую версию, вы соглашаетесь с тем, что не нужно будет запускать сценарии, предшествующие базовой версии.   -  person David Atkinson    schedule 09.04.2018
comment
Как сообщить вновь созданной схеме, какие шаги считаются уже выполненными? У меня сложилось впечатление, что это базовый уровень.   -  person Alluir    schedule 09.04.2018
comment
Разве вы не можете создать эту новую схему, запустив flyway -target=n migrate, чтобы ее таблица истории версий была правильной?   -  person David Atkinson    schedule 09.04.2018
comment
Хм, это сработало бы, если бы 1.0 был полным сценарием создания. Однако 1.0 — это скрипт, только после того, как проект начал использовать Flyway, поэтому он содержит изменения только с определенного момента, его нельзя использовать для создания схемы. Но вы правы, в лучшем из миров это должно быть сделано, к сожалению, не в этой настройке. Возможно, мы будем стремиться к этому в последующих проектах, по крайней мере, я постараюсь ориентироваться в этом направлении :).   -  person Alluir    schedule 10.04.2018
comment
Вчера я протестировал этот метод: stackoverflow.com/questions/29012034/ и работает на удивление хорошо. По-видимому, для правильной работы Flyway должны быть осмысленными только 3 поля: install_rank, version и Success. Ремонт может заполнить остальное из шагов.   -  person Alluir    schedule 10.04.2018
comment
Если вы добавите сценарий V0.1 в свой набор сценариев миграции, который переводит базу данных в версию 1.0, то у вас будет полный набор сценариев миграции, которые могут создать базу данных с нуля. Если у вас есть база данных версии 1, вы можете написать это, например, с помощью SQL Developer.   -  person David Atkinson    schedule 10.04.2018
comment
Но метод, на который вы ссылаетесь, интересен. Спасибо за ссылку на это. Это кажется немного хакерским, но довольно умным. Я мог бы поэкспериментировать с этим сам, поскольку у меня есть несколько сценариев, которые не так чисты, как я надеялся.   -  person David Atkinson    schedule 10.04.2018