使用csv文件中的数据填充db表的快速解决方案

时间:2011-12-29 12:17:15

标签: database ruby-on-rails-3 fill

喜欢标题..我想在我的数据库中创建表,然后用我的csv(tab是“;”)文件中的记录填充它。有记录(和整个表)不会被任何人更新或更改。我只需要用这些记录创建db(只有Postgres)。我想稍后从这张表中随机取一些记录。有小费吗?或者从db中直接从csv文件instad中获取随机记录是更好的解决方案? Plz帮助

1 个答案:

答案 0 :(得分:2)

您可以创建一个命令行工具来读取您的cvs文件并使用ActiveModel与数据库通信。在这种情况下,您可以像在任何其他rails应用程序中一样创建模型和数据库。

要读取您的cvs文件,请执行以下操作:

require 'csv'

CSV.foreach(fileName, :headers => true, encoding: "UTF-8") do |row|
  row['myfiled'].to_s
end

您需要csv gem,并且必须使用要使用的列的名称替换myfield。如果您拥有ruby中的数据,则可以创建模型,就像在rails中一样。将定义放在同一个文件中,或使用require引用您的模型。

或者你可以只读取cvs文件并随机决定是否要使用这些数据。在这种情况下,您无需将其放在数据库中。