MySQLのインポートで0になるのが嫌い
相変わらずのRails+MySQLです。
昨日までのインポートするカラムに数値型なんだけど、MySQLではNullにしたい状況があったりするんだけど、MySQLのコマンドだけでは解決しそうにないのでサッサと諦める。
プロジェクト/app/controllers/db_controller.rb
#db_controller.rb
require 'kconv'
require 'fastercsv'class DbController < ApplicationController
def top
importIftb
end
def importIftb
FasterCSV.foreach(IFTB_FILE){ |row|
iftb = Iftb.new
iftb.id = row[0]
iftb.dtstart = row[1]
iftb.dtend = row[2]
iftb.machine = row[3]
iftb.repdivision = row[4]
iftb.repdetail = row[5]
iftb.repetc = row[6] if row[6]!=' '
iftb.situation = row[7]
iftb.repman = row[8]
iftb.fup = row[9] if row[9]!='0'
iftb.fdown = row[10] if row[10]!='0'
iftb.maillist = row[11]
iftb.save
}
puts "iftb import complete!"
end
end
と
プロジェクト/config/environment.rbの一番下に追記
# インポートするCSVファイル
BASEADDR = 'C:\\Aptana IDE Beta\\iftb\\public\\'
IFTB_FILE = BASEADDR + 'convert2_u8_crlf.csv'
そして
プロジェクト/public/convert2_u8_crlf.csvをUTF-8(BOMなし)でCR+LFで作成
#convert2_u8_crlf.csv
サンプル
1,2006/1/1 0:00,2006/1/1 0:00,machine,repdivision,repdetail,repetc,situation,repman,0,0,maillist
最後に
プロジェクト/app/view/db/top.rhtml
からっぽ
そしてブラウザでlocalhost/db/topにアクセスすれば、インポートが始まるわけだ!やったー!!
※おわったら、削除しておかないとダメだね!