良いあそなすちゃん

良い方のあそなすちゃんです!

とあるサービスをRails5にした

f:id:asonas:20161209053231p:plain

Rails5.1のニュース読んでて良さそうだな〜とかぼやいてて、2時間ぐらい前に急にやっていきが芽生えたのでやっていきましょうという運びになりました。

方針としては onk さんが以前につぶやいていたような方法を実践してみました。

具体的にはおもむろにgit ls-files | xargs rm -rfとかやって.git以外のファイルをすべて消した。あとは同じディレクトリ内にrails newをすると色々DeletionされたりModifyされたりするので、気合でチェックアウトとかします。雑に言うとdb/migrateとかはcheckoutしてapp以下は大抵コメントの更新だから新しいコメントだけを残してaddします。やっかいなのはconfig以下で結構激しくdiffるので丁寧に読み解く必要があります。このときに設定の項目の順序を元のファイルに合わせるよりは新しくつくられる順序にあわせるほうが後々良さそうかなと思いました(diffの量が減りそう)

たとえばconfig/puma.rbはRails4時代に追加して不要なコメントとかをがっつり消していたんだけど、今回のようなアップデート手順を踏むとめっちゃdiffがでる。ただ、ちゃんとしたコメントなので読んでるだけでもなるほどとなることもあるので、すぐに消したりするよかはしばらく置いて読めるようになってるといいかもしれない。

f:id:asonas:20161209053637p:plain

画像だとpreload_app!が先頭にあって消えてるんだけど、実際のところはコメントが挟まれて後ろの方にいっている

あとENV['RACK_ENV']ENV.fetch('RACK_ENV')になってるあたりとかも気付きでなるほど存在しない環境変数にアクセスしたら怒られる用になったんだなとかわかりを得られるという塩梅です。(もともと何かのコピペをした気もするのでそもそも順序とかがどうとかはあんまり関係ないかもしれない)

この他にも気づきとしてはサポートされるPostgreSQLのバージョンがかわったりなどしていることにも気づける

f:id:asonas:20161209053833p:plain

というわけで3時ぐらいから初めて2時間、うち30分は手元のPostgreSQLのアップグレードとかに費やしたのでまぁ2時間弱もあれば個人開発レベルのアップグレードは容易ですねという感じです。弊ビスでやろうと思うとコード量的にちょっと大変そうなのでなんらか別の手段を講じたほうがよいかもしれない。