Ruby on Rails将CSV导入MySQL
发布时间:2020-12-17 02:43:01 所属栏目:百科 来源:网络整理
导读:新手问题…. 试图在rails中启动项目.我有不同的csv格式的电子表格我想导入MySQL数据库,以便能够操纵数据. 在浏览stackoverflow,谷歌等之后,我写了一个rake任务,需要更快的工作才能完成这项工作.我一直在收到错误,希望你能提供帮助. … 好吧所以我改变了代码
新手问题….
试图在rails中启动项目.我有不同的csv格式的电子表格我想导入MySQL数据库,以便能够操纵数据. 在浏览stackoverflow,谷歌等之后,我写了一个rake任务,需要更快的工作才能完成这项工作.我一直在收到错误,希望你能提供帮助. … 耙文件的新代码(取3): require 'csv' desc "Import gac from csv file" task :import => [:environment] do file = "gac.csv" CSV.foreach(file,:headers => true) do |row| Institution.create({ :institution_name => row[0],:website => row[1],:email => row[2],:category_1 => row[3],:category_2 => row[4],:category_3 => row[5],:category_4 => row[6],:category_5 => row[7],:category_6 => row[8],:category_7 => row[9],:category_8 => row[10],:category_9 => row[11],:category_10 => row[12],:category_11 => row[13],:institution_description => row[14] }) end end 错误代码: Daves-MacBook-Pro:vendor dave$rake import --trace ** Invoke import (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute import rake aborted! invalid byte sequence in UTF-8 /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1855:in `sub!' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1855:in `block in shift' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1849:in `loop' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1849:in `shift' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1791:in `each' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1208:in `block in foreach' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1354:in `open' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/csv.rb:1207:in `foreach' /Users/dave/rails_projects/vendor/lib/tasks/import.rake:8:in `block in <top (required)>' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' /Users/dave/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' /Users/dave/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>' /Users/dave/.rvm/gems/ruby-1.9.3-p0/bin/rake:19:in `load' /Users/dave/.rvm/gems/ruby-1.9.3-p0/bin/rake:19:in `<main>' Tasks: TOP => import 解决方法
确保您在app / models中定义了Institution模型类和/或确保您已运行db migration(s)(rake db:migrate)来创建INSTIT表 – 假设您使用了生成器(或scaffold)创建模型.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |