Rails の Migration で「Lost connection to MySQL server during query」と言われた際の対処方法

Published at: 2019/03/13

TL; DRread_timeout: タイムアウト秒数を config/database.yml に書く。詳細Lost connection to MySQL server during queryと言われながら、Rails で MySQL の既存の(巨大な)テーブルに index を追加する migration が失敗した。 ので、その原因を調査した際のメモ。 いろいろな情報がすごくミスリーディングだったりするので、ここにまとめを作っておく。まず、 MySQL サーバーはコネクションに対して、それがとてつもない Slow Query だったからといって、勝手に abort したりするようなことはしない。 …

MySQL で json 配列の要素一つ一つをレコードとする

Published at: 2019/03/02

MySQL で json カラムを用いた場合、その中身に json 配列を記録することができる。 普通に機能を開発していくと、この json 配列の中身から、その要素一つ一つを SQL 上のレコード1行に展開したい場合が出てくる。 それを実現するためには、 MySQL 8.0.…