我使用
在我的一个表中添加了一个新列class AddLocationToHome < ActiveRecord::Mirgation
def change
add_column :home, :location, :string
end
end
主表已经包含从从csv文件读取的rake任务填充的数据。 我将标题和新数据添加到我的csv文件中,但是如何运行我的rake来导入新的数据列呢?
我的rake导入是这样的
require 'csv'
namespace :db do
desc "Import the location of existing homes"
task :import_locations => environment do
csv_text = File.read('db/imports/homes.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do (row)
!# not sure how to import just the new rows from the csv?
end
end
end
谢谢!
答案 0 :(得分:1)
你在那里有一个合理的开始。不过,在这个评论的空间内,您需要做的是:
Home.where(col1: row['col1'])
,但使用足够的列来获得正确的匹配。)home.update_attribute(location: row['location']
)......然后到下一个。它会用一段时间来查询你的数据库,但唯一的办法是将整个表加载到内存中。