How I Import file CSV into database

Well, when I had to do this recently, I used FasterCSV and ActiveRecord inside a Rails migration which began like:

require 'rubygems' require 'active_record/fixtures' begin    gem 'fastercsv', '>=1.2' rescue Exception    # on TxD, it's unpacked as a plugin!    $: << File.expand_path('vendor/plugins/fastercsv-1.2.0/lib') end require 'fastercsv'

class ImportResearchData < ActiveRecord::Migration ...

And had a part that was like:,                       :headers => :first_row,                       :converters => :numeric) do |csv|          csv.each do |row|            if csv.lineno % 1000 == 1              $stderr.print "\r%5d ..." % csv.lineno              $stderr.flush            end            row.each do |header,value|

...and used the block variables to create one of three different records, if needed, through ActiveRecord models. You should be able to figure out how to get started. Note that if your CSV file is one-record equals one-database-row, your loop will likely be quite a bit simpler than mine. (My CSV data was essentially the result that would come from a three table join of the original database to which I had no access.)


Rob Biedenharn

For occasional use, (or not, now that I think of it), you can also use MySQL to import it. A gui like Navicat can be a great time server in that case. For other DB, please check the doc.