Перенос данных о продвижении трубопровода Heroku
Я использую конвейер для моего приложения на Heroku. У меня есть промежуточное приложение, которое затем превращается в производственное приложение. Я запускаю любую миграцию схемы перед развертыванием на стадии подготовки, а затем я продвигаю slug в производство.
Но теперь мне нужно перенести некоторые пользовательские данные при следующем развертывании, и я ищу способ сделать это как часть продвижения. Я всегда мог выполнить задание по рейку, когда продвижение будет завершено, но это кажется очень рискованным. В идеале код должен запускаться до выпуска приложения и выполнять откат, если что-то пойдет не так.
Я думал, что Фазы выпуска были ответом, но я не думаю, что могу получить доступ к данным пользователя там, учитывая эти соображения.
1 ответ
Похоже, что мои оговорки по поводу фаз релиза были необоснованными. Вы можете просто перенести данные как часть фазы выпуска. Для тех, кто пытался сделать то же самое, я использовал data_migrate ruby gem, который работает очень хорошо. Затем я обновил свой Procfile, добавив в него следующее:
release: rails db:migrate:with_data
Это запускает любые миграции данных, которые я создал с помощью гема, и если что-то пойдет не так, выпуск отменяется.