たいやきブログ

mail to tsuyoshi.ogawa[a]gmail.com if you have some question!

RailsでMySQLのLOAD DATA LOCAL INFILEを使う方法

パフォーマンス重視で大量のデータをDBにロードするにはやっぱLOAD DATAコマンドですよね。
で、以下のコードをRails(3.2.11)から投入しようとしたら

ActiveRecord::StatementInvalid:Mysql2::Error: The used command is not allowed with this MySQL version

ってエラーがでました。
たぶん、local-infileオプションが聞いてないんだろうなぁと思ってたら案の定そうで、
いろいろ調べ結果、以下で解決しました。

  • mysql2のgemのversionを'0.3.12b6'にする
  • database.ymlに"local_infile: true"を追加する