Перенос данных о продвижении трубопровода Heroku

Я использую конвейер для моего приложения на Heroku. У меня есть промежуточное приложение, которое затем превращается в производственное приложение. Я запускаю любую миграцию схемы перед развертыванием на стадии подготовки, а затем я продвигаю slug в производство.

Но теперь мне нужно перенести некоторые пользовательские данные при следующем развертывании, и я ищу способ сделать это как часть продвижения. Я всегда мог выполнить задание по рейку, когда продвижение будет завершено, но это кажется очень рискованным. В идеале код должен запускаться до выпуска приложения и выполнять откат, если что-то пойдет не так.

Я думал, что Фазы выпуска были ответом, но я не думаю, что могу получить доступ к данным пользователя там, учитывая эти соображения.

1 ответ

Решение

Похоже, что мои оговорки по поводу фаз релиза были необоснованными. Вы можете просто перенести данные как часть фазы выпуска. Для тех, кто пытался сделать то же самое, я использовал data_migrate ruby gem, который работает очень хорошо. Затем я обновил свой Procfile, добавив в него следующее:

release: rails db:migrate:with_data

Это запускает любые миграции данных, которые я создал с помощью гема, и если что-то пойдет не так, выпуск отменяется.

Другие вопросы по тегам