この記事はこちらの記事の続編になります。
プロダクトチームで秋田県へ夏合宿に行ってきました!!その1
前回の記事では秋田県大館市が提供しているサテライトオフィス事業の話がメインだったので、今回はこの合宿で何をしたかを書きたいと思います。
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.1系 → 4.2系 → 5系 と刻んでいくのが定石ということに気づきました。
そこで、目標を5.1.1へのアップデートから4.2.8へ修正しました。
その結果、苦戦しましたがbundle installが通り、あとはコードの修正という段階まで来ました。
rails4.2.8-master というブランチをつくり、そこからトピックブランチを切り、各々開発しレビューしrails4.2.8-masterに向かってマージするという進め方をしました。
Rails4.2系では _filterのメソッド群が _actionに変わっています。
TRUNKはPCサイトとSPサイトのviewを分けるのにjpmobileというgemを使用しています。
これのエラーがなかなか解決せずでしたが、jpmobileのバージョンを固定することでいけました。
https://railsguides.jp/4_2_release_notes.html
一通り開発を終えたところで、手順をメモしテストサイトへデプロイし確認します。
エンジニア杉田がリリースの様子を録画していたので喜びの瞬間をどうぞ!
(ドレッドが動いている様子も御覧ください。)
TRUNKでは学生向けにプログラミングが無料で学べる機会を提供していますので対象の方は是非参加してみてください。
僕も講師として参加します!
『TRUNK CAMP 周りと圧倒的に差をつけるスキルアップの1ヶ月』
https://trunk.fm/camp
プロダクトチームで秋田県へ夏合宿に行ってきました!!その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
テストサイトにデプロイ!
一通り開発を終えたところで、手順をメモしテストサイトへデプロイし確認します。
ついに本番へデプロイ!
エンジニア杉田がリリースの様子を録画していたので喜びの瞬間をどうぞ!
(ドレッドが動いている様子も御覧ください。)
長い長い戦いの末、ついにRailsのバージョンアップデートを完遂した男たちの叫びです。 pic.twitter.com/mRJPTs6Cta
— 杉田賢人 (@sugiken_bike) 2017年7月18日
最後にTRUNK CAMPのご紹介
TRUNKでは学生向けにプログラミングが無料で学べる機会を提供していますので対象の方は是非参加してみてください。
僕も講師として参加します!
『TRUNK CAMP 周りと圧倒的に差をつけるスキルアップの1ヶ月』
https://trunk.fm/camp