У меня есть проект flyway, в котором я хочу запустить обратный вызов java, чтобы изменить имя определенных файлов sql перед запуском миграции в базу данных.К сожалению, происходит то, что миграция сначала выполняется для базы данных, а затем вызывается обратный вызов для изменения имени файла.
Вот мой класс обратного вызова:
public class FooCallback extends BaseFlywayCallback {
@Override
public void beforeMigrate(final Connection connection) {
//rename file from V_1_FooScript.sql to V_05172018_FooScript.sql
}
}
Но в таблице schema_version
Iсм. следующую запись:
description type script checksum
FooScript SQL V_1__FooScript.sql 1473655428
В нем должно быть указано
description type script checksum
FooScript SQL V_05172018_FooScript.sql 1473655428
Как мне получить flyway для изменения имени файла до запуска миграции?
Редактировать 1 : Похоже, что flyway выполняет миграцию, затем выполняет обратный вызов для изменения имени файла, а затем снова запускает миграцию, так как имя файла изменилось, но не удалось при попытке запустить второйвремя, потому что скрипт создает таблицу, поэтому, когда он запускается во второй раз, он просто говорит: «Таблица Foo уже существует».