MySQL に対してやったらエラーが出ずに、ちゃんと create できて入った。 SQLite 特有のなにかなんだろうか。 仕方ないので、データのカラムを合わせた csv にして、sqlite コマンドより import した。 SQLite は手軽だしデフォなので、開発するには重宝してるからこの辺解決したいんだけどにっちもさっちも。 上記はちょっと曖昧で正確ではないかもしれないけど、そんな感じの事が起きた。 解決策 未解決" /> MySQL に対してやったらエラーが出ずに、ちゃんと create できて入った。 SQLite 特有のなにかなんだろうか。 仕方ないので、データのカラムを合わせた csv にして、sqlite コマンドより import した。 SQLite は手軽だしデフォなので、開発するには重宝してるからこの辺解決したいんだけどにっちもさっちも。 上記はちょっと曖昧で正確ではないかもしれないけど、そんな感じの事が起きた。 解決策 未解決" />

rails3 で seed.rb から csv を読み込んで sqlite に突っ込みたかったのに

目的

seed.rb に csv を読み込んで、そこからレコードを create するのに使いたかった。

データベースは sqlite3

CSV.foreach("#{Rails.root}/csv/data.csv") do |row|
  Model.create(
    name: row[0],
    url: row[1]
  )
end

環境

ruby 1.9.2 /rails3.2.2 / sqlite3

結果

Encoding::UndefinedConversionError: "xE6" from ASCII-8BIT to UTF-8: INSERT INTO "icecreams" ("created_at", "name", "updated_at", "url") VALUES (?, ?, ?, ?)

seed.rb にマジックコメント( # coding: utf-8 )もつけたし 、csv ファイルのエンコードも UTF-8。

pp 等で出力すると、コンソールに出てくるのは “xE3x83x87xE3x83x83xE3x82xABxE3x83xABxE3x83x81xE3x82xA7” のようなユニコード文字列。

(ちなみに上は “デッカルチェ” ) =>

MySQL に対してやったらエラーが出ずに、ちゃんと create できて入った。

SQLite 特有のなにかなんだろうか。

仕方ないので、データのカラムを合わせた csv にして、sqlite コマンドより import した。

SQLite は手軽だしデフォなので、開発するには重宝してるからこの辺解決したいんだけどにっちもさっちも。

上記はちょっと曖昧で正確ではないかもしれないけど、そんな感じの事が起きた。

解決策

未解決

シェアする

  • このエントリーをはてなブックマークに追加

フォローする