2017.08.29プロダクトチームで秋田県へ夏合宿に行ってきました!!その2

この記事はこちらの記事の続編になります。
プロダクトチームで秋田県へ夏合宿に行ってきました!!その1

前回の記事では秋田県大館市が提供しているサテライトオフィス事業の話がメインだったので、今回はこの合宿で何をしたかを書きたいと思います。

ズバリ!Railsのアップデート


TRUNK https://trunk.fm のシステムは Ruby on Railsで動いています。
サービスリリースしてから2年間、Rails,Rubyのバージョンはリリースしたときのままでした。

現行バージョン


■ Rails
4.1.7
■ Ruby
2.1.1

目標バージョン


■ Rails
5.1.1
■ Ruby
2.4.1

まずやったこと


今回は私とTRUNKエンジニア杉田、おなじくエンジニア大谷の3人で望みました。そもそも、私はじめ誰もRailsのアップデートをしたことがありませんでした。
ということでまずは情報収集からはじめました。
『Rails アップデート』
『Rails アップデート 手順』
『Rails アップデート 5.1』
のような検索をひたすらしてまずは全体の流れをつかみます。

さっそく挫折...


一通り手順がわかったところでRubyのバージョンを2.4.1にし、Railsのバージョンを5.1.1にしました。
Gemの依存関係のせいか、bundle install が全く通りません。
数時間格闘し、心が折れはじめました。

Rails4.2.8へ目標修正


格闘しながら、いろいろと検索してゆくと、Rails4.1系 → 4.2系 → 5系 と刻んでいくのが定石ということに気づきました。
そこで、目標を5.1.1へのアップデートから4.2.8へ修正しました。
その結果、苦戦しましたがbundle installが通り、あとはコードの修正という段階まで来ました。

開発のすすめ方


rails4.2.8-master というブランチをつくり、そこからトピックブランチを切り、各々開発しレビューしrails4.2.8-masterに向かってマージするという進め方をしました。

主な変更点


skip_before_filter → skip_before_action


Rails4.2系では _filterのメソッド群が _actionに変わっています。


gem jpmobile


TRUNKはPCサイトとSPサイトのviewを分けるのにjpmobileというgemを使用しています。
これのエラーがなかなか解決せずでしたが、jpmobileのバージョンを固定することでいけました。

gem 'jpmobile', '4.2.2'


その他変更点はここを参照


https://railsguides.jp/4_2_release_notes.html

テストサイトにデプロイ!


一通り開発を終えたところで、手順をメモしテストサイトへデプロイし確認します。

ついに本番へデプロイ!


エンジニア杉田がリリースの様子を録画していたので喜びの瞬間をどうぞ!
(ドレッドが動いている様子も御覧ください。)



最後にTRUNK CAMPのご紹介


TRUNKでは学生向けにプログラミングが無料で学べる機会を提供していますので対象の方は是非参加してみてください。
僕も講師として参加します!

『TRUNK CAMP 周りと圧倒的に差をつけるスキルアップの1ヶ月』
https://trunk.fm/camp

この記事を書いた人