20倍
メンテナンス作業終了しました。3分で終わってしまった・・・
@ubiregi
というわけで、実際のmigration作業に20〜30分、トラブルにも対処できるよう余裕を持ってその倍、切りが良い感じで1時間、と計画していたメンテナンス作業が3分で終わりました。
20倍の高速化は、ActiveRecordのupdate_allメソッドを発見したからでした。
Checkout.find_each do |checkout| checkout.deleted = false checkout.save! end
が
Checkout.update_all(:deleted => false)
へと!まあ、これは最初のコードもかなりアホなので(add_columnに:defaultつけたらそれでいい気もする)、べつに良いんですけど。
昨日、こういうことがありまして。「『君のコメントが読みたい!』っていう機能が欲しいな!」って適当なことを言ってみたら、20分後に実装されてたという。けっこうびっくりしました。(ほんと思いつきなので、この機能が価値があるものかどうかはよくわからないんだけど、まあそれは俺の問題じゃない。)
Ikejiの冗談を真に受けてたようです。すでにそういう機能あったんですって。穴があったら入りたいくらいはずかしい。
- 実装するかしないか一瞬で判断できる決断力
- すぐに実装できる腕力
- すぐに実装できるようになっている環境
すごいなぁ。
ユビレジでそれができるかというと、なかなか難しいと思う。(まあ、実装するかどうか、という点について言えば、私がかなり保守的な立場を取っていて、そう簡単には新機能を提供しないというのはあるんだけど。)
まず、根本的な姿勢として、もっとほいほい新機能を実装するように、保守的な体制を取りやめるべきなのかもしれない。さらに、実装するという決断から先をすばやくできるように、どういう風にすれば良いのか考えないといけない。がんばります。
そういうことがあったので、3分でdb:migrate終わってちょっといっそう喜んでみたりしたのでした。