Rails v2.3 を v5.2 へバージョンアップした話 第六章「勇者Rはリレミトを唱えた!」

  • #Ruby
  • #Rails
  • #プログラミング
Rエンジニア

※記事中の物語はフィクションです

※この記事は過去のプロジェクトのお話です

前回のあらすじ

Rails v2.3 を v5.2 へバージョンアップした話 第五章「ここは・・・モンスターハウスだ!」 の続き

勇者Rはモンスターハウスを抜け、無事に次の町へたどり着いた。

かんばん

「v3.1へのバージョンアップの町」へようこそ

ステータス(現状)

項目
Lv 5
たおしたファイル 400
コミット行数 14,000
HP 1
MP 200
ちから 5
はやさ 5
呪文 カフェイン, ローメン, リレミト(現実逃避)

HPが1しかないだって?現実世界はコンティニューできないのさ。

R

コンティニューできないのはまずい・・・。
このプロジェクトから脱出(現実逃避)だ・・・!

勇者Rは リレミト(現実逃避)を となえた!

しかし ふしぎなパワーが はたらいて リレミト(現実逃避)を ふうじこめた!

このせかいでは つかえない「しよう」に なっている!
R

なんだと・・・!?

呪文のドキュメントをRは確認した。

この世界では、リレミト(現実逃避)はご利用になれません。

現実逃避もできなかった。

仕様通りです

神のお言葉「仕様通り」には、さすがの勇者も勝つことができなかった。

ステータス(更新後)

項目
Lv 5
たおしたファイル 400
コミット行数 14,000
HP 1
MP 200
ちから 5
はやさ 5
呪文 カフェイン, ローメン ,リレミト(現実逃避)

次の攻略の準備

R

めげずに攻略していこう

今回はv3.1のドキュメントの仕様確認からはじめる。アルコールを片手に。

Ruby on Rails 3.1 リリースノート

アプリケーションがRails 3までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 3.1にアップデートしてください。以下の注意点を参照してからアップデートしてください。

Railsバージョンアップの推奨は、メジャーバージョンとマイナーバージョンを1つずつ対応していくことだ。

Ruby on Rails のメンテナンスポリシー

例)
Rails x.y.z
x:メジャー
y:マイナー
z:パッチ

例)Rails 3.0.2
3:メジャー
0:マイナー
2:パッチ

よって今回は、v3.1なので、y(マイナーバージョン)のアップデートを行う。

railsの全バージョン履歴

Rails v3系はv3.2まであるので、あと2回で終わりだ。

1.1 Rails 3.1ではRuby 1.8.7以上が必要

これはv3.0にて対応済である。

1.2 Railsのアップグレード方法 1.2.1 Gemfile

Gemfileの内容を 3.1.12 に修正をした。

gem 'rails', '3.0系'
↓
gem 'rails', '3.1.12'

Gemfileのバージョンを指定する時、記号が利用できる。

Patterns - RubyGems Guides

# 3.1.12に一致
gem 'rails', '3.1.12'
gem 'rails', '= 3.1.12'

# 3.1.12以上
gem 'rails', '>= 3.1.12'

# 3.1.12より大きい
gem 'rails', '> 3.1.12'

# 3.1.12以上 かつ 3.2未満
gem 'rails', '~> 3.1.12'

# 3.1.12以上 かつ 3.2未満(~>と同じ)
gem 'rails', '>= 3.1.12', '< 3.2'

否定も可能なので、前章の v3.0.11 を省きたいなどにも利用可能だ。今回は、v3.1はv5への通過点なので、一致で指定をした。

1.2.2 config/application.rb

アセットパイプラインを利用するため、config/application.rbに下記を追加した。

# verup v3.1 アセットパイプラインのために以下の追加が必要です。
config.assets.enabled = true
config.assets.version = '1.0'

jQueryやPrototype.jsは今後ベンダリングされません。代わりにjquery-rails gemやprototype-rails gemで提供されます。

Prototype.jsはv3.0にて省いた。

config/environments/development.rbconfig/environments/production.rb も適切に対応をする。

RJSの設定config.actionview.debugrjs = trueを削除します。

v3.0で利用されていたので、削除した。

設定にconfig.force_sslが追加されました。これはRack::SSLミドルウェアを読み込んであらゆるリクエストを強制的にHTTPSプロトコルにします。

SSLを利用する場合は、設定をしよう。

# config/environments/production.rb

config.force_ssl = true

設定(config)関連はこの程度であった。残るはMVCの影響があるロジックを修正をした。

今回は非推奨が少なかった

v2.3 → v3.0 の時は、非推奨が多かったが、v3.0 → v3.1の時は、少なかった。

R

ふぅ、今回はそれほど苦労しなかったな

無事に

rails server

で起動したのである。今回は、メジャーバージョンではなく、マイナーバージョンのアップグレードなので、それほど影響がなかったようだ。

R

どれどれテストしよう

システムエラーが発生いたしました
R

なんだと!またエラーか!?

攻略本の対応は一通りしたはずだ。

はじめまして

R

誰だ!

プラグイン

プラグインと申します

R

なんだと・・・

なんと、攻略本(公式ドキュメント)には記載されていない、プロジェクト固有で利用しているプラグインのバージョンアップが必要なのであった。

次回

Rails v2.3 を v5.2 へバージョンアップした話 第七章「地球外生命体 プラグイン」

この記事を書いた人

Rエンジニア
おすすめRECOMMENDED