Горячий развертываются на Heroku без времени простоя

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

Это может, очевидно, вызвать приблизительно 500 ошибок на пользователях, перемещающихся по веб-сайту, имеющему новый код без новых таблиц/атрибутов: решение, предложенное Heroku, состоит в том, чтобы использовать режим техобслуживания, но я хочу путь без оборотной стороны, позволяющей моему веб-приложению, работающему каждый раз!

Существует ли путь? Например, с Capistrano:

  • Я готовлю код для развертывания в новом dir
  • Я выполняю (обратные) миграции, и старый код продолжают работать отлично
  • Я swith экземпляр полукровки к новому dir и перезапуску сервер

... и у меня нет времени простоя!

34
задан zetarun 1 April 2010 в 13:56
поделиться

1 ответ

Heroku не может разворачиваться с помощью капистрано. Вы блокируете инструмент, выпущенный heroku.

Система без простоев невозможна во всех случаях. Как изменить схему с большим изменением, не останавливая сервер. Если вы не остановите это, вы можете избежать некоторых изменений, и ваша база данных может быть несогласованной. ТАК, использование страницы обслуживания - нормальное решение.

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

0
ответ дан 27 November 2019 в 17:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: