Удаление миграции FlywayDB

Я всегда думал, что если миграция, применяемая с flywaydb, будет удалена (как: запись из таблицы DB schema_version и файла sql миграции, так и приложение (написанное в весеннем фреймворке с пролетным путём в пути к классам), произойдет сбой при запуске из-за недействительных контрольных сумм.

На самом деле (я тестировал его сегодня), когда удаляется файл миграции и запись в БД, приложение запускается просто отлично, что я нашел немного запутанным.

Как пролетает расчет контрольных сумм? Является ли он основан только на содержании используемого файла миграции или предыдущих миграций?

Кроме того, безопасно ли удалять уже примененные миграции, если удаляются как файл, так и таблица?

1 ответ

Здесь много вопросов. Для вашего основного вопроса это поведение контролируется флагом ignoreMissingMigrations. См. Https://flywaydb.org/documentation/commandline/migrate

Контрольные суммы рассчитываются на основе содержимого файлов миграции (игнорируя окончания строк из-за преобразований Git CRLF).

Если и файл миграции, и его запись в таблице метаданных удалены, Flyway больше ничего об этом не знает. Это, однако, не означает, что это безопасно, так как это может повлиять на вашу способность позднее воссоздать схему базы данных.

licensed under cc by-sa 3.0 with attribution.