Flyway - как устранить проблему, когда схема имеет версию более новую, чем последняя доступная миграция

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

0
задан Artur Skrzydło 17 January 2019 в 09:49
поделиться

1 ответ

Отказ от ответственности :

Это опасно, но вариант.

Выполните следующие шаги.

  1. Сделайте резервную копию вашей схемы. Как минимум сделайте резервную копию вашей таблицы schema_version
  2. и удалите все записи в schema_version, где версия выше 29 (или недавние миграции по сравнению с версией 29). Обратитесь к вашей папке миграции.
  3. Запустите flyway migrate, это попытается воссоздать версию миграции 29, но может произойти сбой, поскольку содержимое версии 29 уже было применено к базе данных. Если это не удалось, обновите эту запись миграции, чтобы установить столбец success = 1.
  4. скопировать данные из резервной копии schema_version, чтобы вставить все записи о миграции выше версии 29.

надеюсь, что это поможет.

0
ответ дан SudhirR 17 January 2019 в 09:49
поделиться