Рубрики
Uncategorized

Обновите приложение Rails от Heroku-16 до стека Heroku-18

Я работаю с клиентом, чтобы срочно обновить свои рельсы приложение из стека Heroku-16 к Heroku -… Tagged Rails, Ruby, Heroku, Devops.

Я работаю с клиентом, чтобы срочно обновить свои рельсы приложение из стека Heroku-16 в стек Heroku-18. Heroku уже в конечном итоге стека Heroku-16 в начале этого месяца. И через несколько дней, 1 июня, они полностью выключают поддержку патчей и новые сборки приложений Heroku-16.

Стек Heroku-18 поддерживается до 2023 апреля ( Источник ).

Минимальная версия Ruby поддерживается Heroku-18, является RUBY 2.4.10 ( Источник ).

Тестирование обновления Ruby Локально

Установите целевую Ruby версию:

$ asdf install ruby 2.4.10

Переключитесь на эту версию Ruby:

$ asdf local ruby 2.4.10
$ ruby --version
ruby 2.4.10p364 (2020-03-31 revision 67879) [x86_64-darwin19]

Установите старую версию Bundler (Pre 2.x):

$ gem install bundler:1.17.3

Установите все драгоценные камни приложения с новой версией Ruby, используя конкретную версию Bundler:

$ bundle _1.17.3_ install

Запустите сервер локально (подключен к любой БД смысл) и попробовать вещи:

$ bundle exec rails s

Развертывание приложения для предварительного просмотра

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

Это будет включать развертывание ветви с новой версией Ruby для предварительного приложения на более новом стеке Heroku.

Вот гид Heroku на Обновление стопки приложения Отказ

Рекомендуемый способ Для этого необходимо создать ветку для вашего приложения, измените стек в app.json А затем разверните приложение для предварительного просмотра (фактически называемые приложениями Reviews) в Heroku. Он будет использовать версию стека, указанную в этом файле JSON.

{
  "stack": "heroku-18"
}

Развертывание изменений в производстве

Я изначально пытался подтолкнуть изменения рубина и app.json Стек меняется непосредственно на производство. Это привело к развертываемым изменениям обновления Ruby Rubgrade на старом стеке. Несмотря на изменения, сделанные в app.json , Heroku не обновляет стек для существующего приложения таким образом.

Стек существующего приложения не может быть изменен с помощью App.json. Указанный стек применяется только к вновь созданным приложениям, которые являются приложением Review, A приложении TEST RUN EROKU CI или приложение, созданное с помощью кнопок Heroku. источник

К счастью, изменения обновления Ruby развернуты в развертывании существующей стеки. И приложение смогло построить и развернуть существующий стек, потому что мы все еще 2 дня от полной амортизации.

Как я должен был сделать, это было сначала установить стек для приложения, используя Heroku CLI.

$ heroku stack:set heroku-18 -a 

Heroku будет применять этот обновление стека на следующую сборку. Так как только это установлено, я должен был затем подтолкнуть изменения рубины.

Потому что я сделал это из строя, мне пришлось вызвать другой развертывание производства, подталкивая пустой коммит.

$ git commit --allow-empty -m "Upgrading to heroku-18"

Как только этот пустой коммит находится на главной ветви, я затем толкнул, что непосредственно на главную ветку дистанционного управления ( Git Push Origin Main ). Это работает, потому что у меня GitHub интегрирован с Heroku, так что любые изменения толщины на Главная Филиал заставит развертывание. Если это не так, вы можете вызвать развертывание Heroku Way, толкая на удаленный эроку Heroku ( Git Push Heroku Main ).

Если вам нравится мое письмо, рассмотрим присоединяясь к моей рассылке или следовать за мной на твиттер .

Обложка фото Шарлота Блунарова на Бессмысленно

Оригинал: «https://dev.to/jbranchaud/upgrade-a-rails-app-from-the-heroku-16-to-the-heroku-18-stack-5kp»