Выполнить миграцию Flyway в асинхронном режиме - PullRequest
0 голосов
/ 17 марта 2020

По своей конструкции миграция с прохода выполняется синхронно на ранних этапах при запуске приложения. Обычно это желательно, чтобы убедиться, что до того, как бизнес-логика c начнет выполняться, база данных находится в согласованном состоянии (перенесена) или произойдет сбой миграции, и приложение вылетит.

В некоторых случаях мне бы очень хотелось иметь возможность запускать приложение, не дожидаясь завершения некоторых миграций (длительные миграции, создание индексов или материализованных представлений и т. д. c.). Это также может потребоваться при развертывании с CI-сервера и использовании времени развертывания / проверок работоспособности (которые не могут быть вызваны бесконечно) для обеспечения правильной работы развертывания.

Существует ли какая-либо конфигурация / соглашение / лучший метод для включения асин c миграций?
(т. Е. Имя миграции A2_00__UpdateSthLong.sql вместо V2 (стандартная) или R2 (повторяемая миграция).

1 Ответ

0 голосов
/ 17 марта 2020

Похоже, что это невозможно (пока):

  • Существует проблема, запрашивающая это на github: https://github.com/flyway/flyway/issues/950

  • Пролёт для микронавта, кажется, уже поддерживает это: https://github.com/flyway/flyway/issues/950

  • Временное решение, пока поддержка не будет интегрирована, может заключаться в использовании Java Миграции и порождение асин c - Задача изнутри migrate метода самостоятельно.

...