Ruby on rails 在不影响现有数据的情况下,将CSV中的特定数据列添加到Heroku表中

Ruby on rails 在不影响现有数据的情况下,将CSV中的特定数据列添加到Heroku表中,ruby-on-rails,ruby-on-rails-3,postgresql,csv,heroku,Ruby On Rails,Ruby On Rails 3,Postgresql,Csv,Heroku,我有一个带有用户电子邮件地址列表的CSV。我需要将这些地址作为新记录添加到heroku用户表中,而不影响已经在其中的用户行。CSV当前的表格格式与heroku表格不同,它只是一列数据 我尝试了几种方法,但它们似乎是在导入之前先删除表中当前的数据。实现这一目标的最佳方法是什么?考虑到您的csv标题为“电子邮件” 您的种子文件将如下所示: require 'csv' data = CSV.read(Rails.root.to_s + '/public/csvfile', headers: true

我有一个带有用户电子邮件地址列表的CSV。我需要将这些地址作为新记录添加到heroku用户表中,而不影响已经在其中的用户行。CSV当前的表格格式与heroku表格不同,它只是一列数据


我尝试了几种方法,但它们似乎是在导入之前先删除表中当前的数据。实现这一目标的最佳方法是什么?

考虑到您的csv标题为“电子邮件”

您的种子文件将如下所示:

require 'csv'

data = CSV.read(Rails.root.to_s + '/public/csvfile', headers: true)
data['email'].each do |email|
  @user = User.new(:email => email)
  User.save(:validate => false)
end

电子邮件列表和heroku上的记录顺序相同?表示csv中的第一封电子邮件应与用户表中的第一条记录匹配,依此类推?电子邮件地址不适用于当前记录。它们将作为新记录添加到表中。我的CSV中的每个电子邮件地址都会导致我的用户表中出现一条新记录。它们没有特定的顺序,所以只需为此创建一个种子文件。您的csv文件有多少列?经过几次调整后,这已经非常有效了。谢谢尼廷:)不过,对于大量用户来说,速度会慢得可怕。如果您想有效地执行此操作,
将csv复制到新表中,然后执行
更新。。。从
执行添加新字段的合并更新。