Как я могу запустить миграцию БД с Flynn, не мешая выполнению кода? - PullRequest
0 голосов
/ 19 ноября 2018

Учитывая существующее приложение Ruby on Rails, работающее на Flynn , как я могу развернуть новую версию приложения, которая имеет изменения схемы (ради вопроса, скажем, они занимают 10 секунд, чтобы выполнить) без ошибок БД при обслуживании запросов до тех пор, пока не будет завершено изменение схемы?

Heroku решает эту проблему с помощью функции Preboot , которая, по сути, является тем, что я ищу здесь, но любая альтернативная схема, которая работает, подойдет.

Вот пример сценария с шагами:

  1. Элемент списка
  2. Версия 1 приложения, работающего с существующей схемой БД.
  3. Приложение версии 2 развертывается с кодом, основанным на новых таблицах
  4. Миграции выполняются и создаются новые таблицы
  5. Версия 2 теперь может работать как задумано

Как можно предотвратить запросы на получение ошибок между шагами 3 и 4, но при этом иметь возможность развертывать изменения схемы и зависимый код вместе?

...