バージョン違いでdefaultの解釈が異なる
Railsが関係するかどうかも若干不明な状態なのだけど、この問題のせいで
先週からしっちゃかめっちゃかになっていた。とりあえずでもリマインドの
ためにメモっておく。
[現象]
環境によって値の取得が行えたり行えなかったりする
行えない場合は、Railsのレベルでもエラーとして表示される。
(Nil Object取得と解釈されることによるNo Method Error)
[想定原因1]
MySQLのバージョン違いによるデフォルト設定の解釈の違い
→default設定がない場合、0が入ったり、NULLになっていたりする。
バージョン5.0.48と4.X系で違う。(メジャーバージョンが違うからしょうがないか…?)
5.0.48と5.0.5xでも異なる結果になった。
[想定原因2]
Railsがdefaultの空文字をNil Objectと解釈する?
RailsというべきかRubyというべきか。こちらはちょっとわからない。
[対処]
MySQLのバージョンを開発環境と本番で正確に合わせる。
当たり前といえば当たり前だが細かなパッチ等でも変わる可能性があるということになる。
影響範囲が大きいので再帰テストが不可欠になる。
本当はもっと調査してつまりこういうことだったんだよ!(な、なんだtt)
みたいな展開にしなきゃいけないんだろうけどほんととりあえずメモだけ。