RailsがMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0
— Ryuta Kamizono (@kamipo) April 18, 2014
Railsでcollationとしてutf8_unicode_ci(RailsのDEFAULT_COLLATION)が採用されるのはcharsetが未指定もしくはutf8(RailsのDEFAULT_CHARSET)のときだけで、utf8mb4にすることとかは全く考慮されてない。
— Ryuta Kamizono (@kamipo) April 19, 2014
@frsyuki MySQLのcharset utf8のときのデフォルトのcollationはutf8_general_ciなのですけど、railsが無指定だとutf8_unicode_ciに上書きするので僕は毎回指定して使ってます http://t.co/XaGfebrbhu
— Ryuta Kamizono (@kamipo) October 2, 2013
マジでありますか!? "utf8_unicode_ciでは'ハ'と'パ'は等価と扱われるので'ハハ'も検索に引っかかります。" "SELECT * FROM families WHERE relationship = 'パパ';"
— FURUHASHI Sadayuki (@frsyuki) October 2, 2013
ぇじゃぁそうすると utf8_unicode_ci は何のためにあるのか良く分からないな
— FURUHASHI Sadayuki (@frsyuki) October 2, 2013
utf8_general_ci、本当に日本人殺しだと思う。 #mdb_casual
— やわなメンタルのjoker (@joker1007) November 10, 2014
これ名前のフリガナをDBに入れてると確実に踏んで死ぬ。 #mdb_casual
— やわなメンタルのjoker (@joker1007) November 10, 2014
RailsのMySQLのデフォルトのcollationをutf8_unicode_ciにした奴、呪われて欲しい。
— やわなメンタルのjoker (@joker1007) February 2, 2015
utf8_unicode_ciにしたコミット(https://t.co/XqfVL5LCfn)をrevertするブランチ手元にはあるけど僕の英語力では説得できる気がしないから助けてくれそうな仲間が増えるまでPR出せそうにない pic.twitter.com/UkGhJUOCw1
— Ryuta Kamizono (@kamipo) February 3, 2015
MySQL の utf8_unicode_ci で同一視される文字のまとめ。理解していないと、ハマる原因のひとつになり得る。 / “MySQL 5.5.11 unicode_ci で同一視される文字” http://t.co/hppJLYFtrA
— Takuto Wada (@t_wada) February 3, 2015
ActiveRecordのMySQLってCOLLATE=utf8_unicode_ciがデフォルトなんだ。ただでさえ見えにくいのに、これハマる人多そう
— Naoya (@naoa_y) February 25, 2015
utf8_unicode_ci、英語圏の人に例えるとpとbとかvとfが同一視されるくらいアレなんだけど、その悲惨な現状を彼らは気づいていないのだ。
というかMySQL側が何とかしてほしいコレ。彼らも気づいてないと思う。
— yoku0825 (@yoku0825) March 5, 2015
なるほど、アクセントとかリガチャの展開のことを考えると utf8_unicode_ci の方が便利という意見なのか http://t.co/p8TWsi0D6G
— Issei Naruta (@mirakui) March 8, 2015
ßとssは同じ意味として使われるけど、ハとパが同じ意味として使われることはないから、根が深いな
— Issei Naruta (@mirakui) March 8, 2015
挙動を他のDBと合わせるために utf8_bin をデフォルトにするなら合理性に異論はあまりないけど、暗黙に utf8_unicode_ci をデフォルトにされるとどの文字が等価なのか把握できてる開発者は少ないしそれ故にUNIQUE制約張ったときの問題も想像するのが難しいと思う。
— Ryuta Kamizono (@kamipo) March 8, 2015
少なくともMySQLを使っているのではあればデフォルトの挙動(大文字小文字を区別しない)は共通理解と考えていいと僕は思うので、必要に応じて開発者がcollationを指定するほうが問題は少ないのではと思う。
— Ryuta Kamizono (@kamipo) March 8, 2015
必要に応じて開発者がcollationを指定するためにカラム毎にcollationを指定するPR https://t.co/aSKxTYGhxS とテーブル毎に指定されたcollationを正確にダンプするPR https://t.co/DYuIh9imZm は4ヶ月前に出してる
— Ryuta Kamizono (@kamipo) March 8, 2015