とあるサービスをRails5にした
Rails5.1のニュース読んでて良さそうだな〜とかぼやいてて、2時間ぐらい前に急にやっていきが芽生えたのでやっていきましょうという運びになりました。
方針としては onk さんが以前につぶやいていたような方法を実践してみました。
レールズのアップデート、.git 以外全消しした上で新しく同名プロジェクト作ってコピーしてきてから git add したり git checkout したりゴニョゴニョするのが今のところ大正解という認識です。
— Takafumi ONAKA (@onk) 2016年6月23日
具体的にはおもむろにgit ls-files | xargs rm -rf
とかやって.git
以外のファイルをすべて消した。あとは同じディレクトリ内にrails new
をすると色々DeletionされたりModifyされたりするので、気合でチェックアウトとかします。雑に言うとdb/migrate
とかはcheckoutしてapp
以下は大抵コメントの更新だから新しいコメントだけを残してaddします。やっかいなのはconfig
以下で結構激しくdiffるので丁寧に読み解く必要があります。このときに設定の項目の順序を元のファイルに合わせるよりは新しくつくられる順序にあわせるほうが後々良さそうかなと思いました(diffの量が減りそう)
たとえばconfig/puma.rb
はRails4時代に追加して不要なコメントとかをがっつり消していたんだけど、今回のようなアップデート手順を踏むとめっちゃdiffがでる。ただ、ちゃんとしたコメントなので読んでるだけでもなるほどとなることもあるので、すぐに消したりするよかはしばらく置いて読めるようになってるといいかもしれない。
画像だとpreload_app!
が先頭にあって消えてるんだけど、実際のところはコメントが挟まれて後ろの方にいっている
あとENV['RACK_ENV']
がENV.fetch('RACK_ENV')
になってるあたりとかも気付きでなるほど存在しない環境変数にアクセスしたら怒られる用になったんだなとかわかりを得られるという塩梅です。(もともと何かのコピペをした気もするのでそもそも順序とかがどうとかはあんまり関係ないかもしれない)
この他にも気づきとしてはサポートされるPostgreSQLのバージョンがかわったりなどしていることにも気づける
というわけで3時ぐらいから初めて2時間、うち30分は手元のPostgreSQLのアップグレードとかに費やしたのでまぁ2時間弱もあれば個人開発レベルのアップグレードは容易ですねという感じです。弊ビスでやろうと思うとコード量的にちょっと大変そうなのでなんらか別の手段を講じたほうがよいかもしれない。