Я успешно выполнил миграцию v1 с помощью DDL для создания таблицы. Я скопировал то же самое в файл v2 и запустил - получил ожидаемое сообщение об ошибке проверки:
Переход на версию 1.0.002 com.googlecode.flyway.core.exception.FlywayException: ошибка при выполнении инструкции в строке 1: создать таблицу people(идентификатор (10) первичный ключ, имя varchar2 (301)) Вызвано java.sql.SQLSyntaxErrorException : ORA-00955: имя уже используется существующим объектом MigrationException: миграция на версию 1.0.002 не удалась! Восстановите резервные копии и откатите базу данных и код.
Я исправил файл v2 и снова запустил миграцию flyway. Возврат сообщения об ошибке
Текущая версия схемы: 1.0.002 MigrationException: миграция на версию 1.0.002 не удалась! Восстановите резервные копии и откатите базу данных и код.
Я не нахожусь на этапе, когда делается резервная копия базы данных - просто пытаюсь выполнить фиксированный DDL. В настоящее время я не вижу решения, кроме очистки пролетного пути. Почему flyway не может повторить попытку запуска НЕУДАЧНЫХ версий (если контрольная сумма изменилась)? Или не должно быть команды отката пролетного пути?
Я знаю, что могу очень хорошо изменить код, чтобы сделать его таким, но была ли какая-то причина, по которой вы выбрали его таким образом?