ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value

スポンサーリンク

Rails で新しくマイグレートファイルを作成してマイグレーション後に、rake タスクで開発用のサンプルデータをDBに流し込もうとしたら表題のエラーが発生しました。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

— 環境 —
rails 4.0.1

DB は utf8_general_ci に設定してあった

Stackoverflow で探したところ、データベースで utf8_general_ci を使えというアドバイス。

確認したところ、テーブルでも variables でも上記のように utf8_general_ci を使っていました。

マイグレートで t.string → t.binary に変更

ここで詰まってしまい少々はまったんだけど、ググりまくり情報を発見。

Bug #18411: Delayed jobs problems since upgrade to 1.2.17 – Puppet Dashboard – Puppet Labs

カラムを string から blob に変更すれば良いらしい。ということで、マイグレートファイルを以下のように変更してマイグレートやり直し。

もともと t.string に指定していたカラムを、t.binary に変更しました。これで無事にサンプルデータを流し込めた。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
 
スポンサーリンク

Leave Your Message!