Ремонт Flyway создает исключение FlywaySqlException с Oracle DB - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь использовать метод восстановления пролетного пути для удаления неудачных записей миграции из таблицы версий схемы с конфигурацией весенней загрузки. Мой код выглядит так:

@Bean
public FlywayMigrationStrategy repairStrategy() {
    return flyway -> {
        flyway.repair();
        flyway.migrate();
    };
}

Но после запуска выдает такую ​​ошибку (операция восстановления завершается неудачно, даже если операция миграции закомментирована);

Error while retrieving the list of applied migrations from Schema History table 
SQL State  : 72000 
Error Code : 12838 
Message    : ORA-12838: cannot read/modify an object after modifying it in parallel

Есть ли у вас Любые идеи? Есть ли здесь параллельная операция? Кстати, я использую Oracle ATP базу данных и версию сообщества flyway.

1 Ответ

0 голосов
/ 03 февраля 2020

Ремонт Flyway не восстановит вашу базу данных ( см. Документы здесь ). Он восстанавливает таблицу истории схемы до действительного состояния. Исправление базы данных остается за пользователем (поскольку это нетривиальная задача).

В этой ситуации вы можете попробовать отправить commit;. Это должно позволить вам выполнить восстановление и затем выполнить миграцию снова. См .: https://dbaclass.com/article/ora-12838-cannot-readmodify-object-modifying-parallel/

...