Skip to content

Instantly share code, notes, and snippets.

@nabinno
Last active March 29, 2016 09:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nabinno/f7916717fa011b05a903 to your computer and use it in GitHub Desktop.
Save nabinno/f7916717fa011b05a903 to your computer and use it in GitHub Desktop.
Rails Upgrade Meetup on 2016-03-28

Rails Upgrade Meetup on 2016-03-28

@a_matsuda

Profile

  • stateful_enum
  • Asakusa.rb

Rails の10年

  • 1.x
  • 2.x
  • 3.x - Modularity, AssetPipeline
  • 4.x - Strong Parameters

コードの刷新

変更につよい

  • bundler (3.0)
  • Module#prepend
  • AMC (1.2)
  • agnostic(3.0)

変化するコミュニティ

Fxxk semantic version

ブランチポリシー

  • ブランチメンテナンスあまりしない
  • Ruby サポート期間3年間

失敗例

  • セキュリティパッチをあてるとこわれる (3.x)

安定しない仕様、バージョンアップの課題

  • 毎回 ActiveRecord をだれかがこわす
  • バージョンあがるとおそくなる
  • Issue triage がおいつかない
  • Edge (5.x) 以外誰もみていない

レールにのりつづけるコツ

  • とにかく最新版をつかう
  • くさりそうな プラグイン をみきわめる

@minamijoyo

Railsバージョンアップを 段階的に行うために Rails3/4並行稼動 http://www.slideshare.net/minamijoyo/railsrails34-60109863


@eagletmt

sql_mode

  • Partial Insert
  • STRICT_ALL_TABLES

acts_as_readonlyable

switch_point

  • ActiveRecord の内部構造に依存しない

ActiveRecord の Monkey Patch

  • Version でこわれるようにする

テスト時のエラー

  • STRICT_ALL_TABLES
  • スロークエリ
  • User.where().first に ORDER BY id ASC がつく
  • バッチはみつけづらい
    • 週次・月次バッチ

@k0kubun

4.1 -> 4.2

1つのエンジンに8つのアプリ

4つ動作確認

Encoding::UndefinedConversionError


雑談

アップグレード楽になった?

  • bundle upgrade つらい
  • こわれた Gem
  • Rails 2.x > Rails 3.x > 段々楽になった

ActiveRecord おそい

アップグレードの罠

  • RSpec の expect への抵抗

Upgrade guide, Release note 参考にしますか?

  • 参考するけど、全てではない

プロダクションデプロイの自信

  • 各部署にまかせる

テストなしでバージョンアップするのか?

  • テストをまずかく
  • feature spec は役にたった

メジャーバージョンアップのアップグレードタイミング

  • 5.0 危険
  • Beta の仕様がよくかわる -> RC になってから本気だす
  • Fork して PR 対応する

バージョンアップの説得方法

  • 採用力
  • モチベーション
  • 平行開発
  • 脆弱性対応 : パッチ対応

Gem 未対応

  • state machine -> stateful_enum
  • Fork -> PR

Fat Controllers / Models からのアップグレード?

  • テストがあれば無問題

平行稼動のアップグレード

  • Memcached に Ruby と Rails のバージョン分岐をいれる
  • Rails Cache は鬼門

Rails 5 のアップグレード方法

  • Turbolinks 5 はつかわないので問題ない
  • ActionCable をつかわない人は問題ない
  • bundle install 鬼門
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment