Rails 4.1 -> Rails 4.2 アップデートメモ: Rails update (5)

はじめに

4 系列の最後になります。同じように順番に設定していきます。Ruby は 2.4.5 まであげられます。そうすると、MacBook 側でもコードを書けるようになって楽になりそうです。結局、2.4.5 ではセグメンテーションフォールトで動かなかったので、次のバージョンまで延期です。そもそも、M1 では 2.4 系の Ruby はコンパイルできませんでした。

Rails のアップデート

まず、Gemfile の Rails のバージョンを変更します。

gem 'rails', '4.2.11.3'

また、upgrade だと勝手に入らない、web-console を手動で development グループに入れるように指示がありました。

gem 'web-console', '~> 2.0'

bundle update で一式をアップデートします。

bundle update

これまでと同様に vimdiff で rails:update を実施します。include していた部分でエラーが出たので、取り急ぎ include をコメントアウトして設定だけ差し替えをしてみます。

env THOR_DIFF=vimdiff rake rails:update

また、PostgreSQL 10 対策もしておきます。rspec でエラーが出たものを修正していきます。

include を元に戻して、bin/rspec をしてみました。特に問題はなく全て通過しました。

Finished in 11 minutes 48 seconds (files took 8.11 seconds to load)
7719 examples, 0 failures, 98 pending

Ruby のアップデート

ここまで来たので、Ruby を 2.4.5 まで上げてみます。しかし、rspec を実行してみたら、ここでも 4.1 と同じようにセグメンテーションフォールトが出てしまいました。まだ行けるので、先に Rails のバージョンを上げましょう。ただ、5.0 では 2.2.2 が必要なので、そこまでは上げておきます。

(12/29追記) Segmentation fault の原因が hpricot だとわかったので、 Ruby 2.4.5 でやり直してみました。少し速くなったくらいでしょうか。

Finished in 11 minutes 13 seconds (files took 6.56 seconds to load)
7719 examples, 0 failures, 98 pending

gem の推移はこんな感じになりました。

gem_name ver4.1 ver4.2 changed
actionmailer 4.1.16 4.2.11.3
actionpack 4.1.16 4.2.11.3
actionview 4.1.16 4.2.11.3
activejob 4.2.11.3 +
activemodel 4.1.16 4.2.11.3
activerecord 4.1.16 4.2.11.3
activesupport 4.1.16 4.2.11.3
arel 5.0.1.20140414130214 6.0.4
bcrypt 3.1.16 3.1.16 =
better_errors 2.9.1 2.9.1 =
binding_of_caller 0.8.0 0.8.0 =
brakeman 4.4.0 4.4.0 =
builder 3.2.4 3.2.4 =
choice 0.2.0 0.2.0 =
ci_reporter 2.0.0 2.0.0 =
coderay 1.1.3 1.1.3 =
coffee-rails 4.2.2 4.2.2 =
coffee-script 2.4.1 2.4.1 =
coffee-script-source 1.12.2 1.12.2 =
concurrent-ruby 1.1.7 1.1.7 =
crass 1.0.6 +
database_cleaner 1.8.5 1.8.5 =
debug_inspector 0.0.3 0.0.3 =
devise 3.5.10 3.5.10 =
devise-encryptable 0.2.0 0.2.0 =
devise_ldap_authenticatable 0.8.7 0.8.7 =
diff-lcs 1.4.4 1.4.4 =
docile 1.3.4 1.3.4 =
dotenv 2.7.6 2.7.6 =
erubi 1.10.0 1.10.0 =
erubis 2.7.0 2.7.0 =
execjs 2.7.0 2.7.0 =
factory_bot 4.11.1 4.11.1 =
factory_bot_rails 4.11.1 4.11.1 =
ffi 1.12.2 1.12.2 =
formatador 0.2.5 0.2.5 =
globalid 0.4.2 +
guard 2.15.1 2.15.1 =
guard-compat 1.2.1 1.2.1 =
guard-rspec 4.7.3 4.7.3 =
haml 4.0.7 4.0.7 =
haml-rails 1.0.0 1.0.0 =
hpricot 0.8.6 0.8.6 =
html2haml 2.2.0 2.2.0 =
i18n 0.9.5 0.9.5 =
interception 0.5 0.5 =
jquery-rails 3.1.5 4.4.0
json 1.8.6 2.5.1
kaminari 1.2.1 1.2.1 =
kaminari-actionview 1.2.1 1.2.1 =
kaminari-activerecord 1.2.1 1.2.1 =
kaminari-core 1.2.1 1.2.1 =
listen 3.0.8 3.0.8 =
loofah 2.8.0 +
lumberjack 1.0.13 1.0.13 =
mail 2.7.1 2.7.1 =
method_source 0.9.2 0.9.2 =
mini_mime 1.0.2 1.0.2 =
mini_portile2 2.4.0 2.4.0 =
minitest 5.14.2 5.14.2 =
nenv 0.3.0 0.3.0 =
net-ldap 0.17.0 0.17.0 =
nio4r 2.3.1 +
nokogiri 1.9.1 1.9.1 =
notiffany 0.1.3 0.1.3 =
orm_adapter 0.5.0 0.5.0 =
pg 0.20.0 0.20.0 =
power_assert 1.2.0 1.2.0 =
pry 0.12.2 0.12.2 =
pry-doc 1.1.0 1.1.0 =
pry-rails 0.3.9 0.3.9 =
pry-rescue 1.5.2 1.5.2 =
public_suffix 3.1.1 3.1.1 =
puma 3.12.6 5.1.1
rack 1.5.5 1.6.13
rack-cache 1.9.0 1.9.0 =
rack-test 0.6.3 0.6.3 =
rails 4.1.16 4.2.11.3
1.0.3 +
1.0.9 +
rails-erd 1.5.2 1.6.0
1.3.0 +
railties 4.1.16 4.2.11.3
rake 13.0.3 13.0.3 =
rb-fsevent 0.10.4 0.10.4 =
rb-inotify 0.10.1 0.10.1 =
rb-readline 0.5.5 0.5.5 =
rdoc 5.1.0 6.2.0
redcarpet 3.5.1 3.5.1 =
responders 1.1.2 2.4.1
rspec 3.9.0 3.10.0
rspec-core 3.9.3 3.10.0
rspec-expectations 3.9.4 3.10.0
rspec-mocks 3.9.1 3.10.0
rspec-rails 3.9.1 4.0.1
rspec-support 3.9.4 3.10.0
ruby-graphviz 1.2.4 1.2.4 =
ruby_parser 3.15.0 3.15.0 =
sass 3.7.4 3.7.4 =
sass-listen 4.0.0 4.0.0 =
sass-rails 6.0.0 6.0.0 =
sassc 2.4.0 2.4.0 =
sassc-rails 2.1.2 2.1.2 =
sexp_processor 4.15.1 4.15.1 =
shellany 0.0.1 0.0.1 =
simplecov 0.17.1 0.17.1 =
simplecov-html 0.10.2 0.10.2 =
simplecov-rcov 0.2.3 0.2.3 =
spring 1.7.2 2.0.2
spring-commands-rspec 1.0.4 1.0.4 =
sprockets 3.7.2 3.7.2 =
sprockets-rails 2.3.3 3.2.2
test-unit 3.3.8 3.3.8 =
thor 0.20.3 0.20.3 =
thread_safe 0.3.6 0.3.6 =

hkob.hatenablog.com