【发布时间】:2014-03-26 04:52:01
【问题描述】:
我正在使用 Ruby on Rails rake 任务将 .csv 文件导入我的 PostgreSQL 数据库。我的代码供参考,如下:
require 'csv'
namespace :db do
desc "Populate database"
task populate_database: :environment do
CSV.foreach("db.csv", :headers => true) do |row|
Sale.create!(row.to_hash)
end
end
end
在 .csv 文件中,我有一个格式为“cat; dog; foo; bar”的条目。现在,这个条目作为“文本”(即数据类型)导入 PostgreSQL。但是,我希望将文本拆分为“;”,并将拆分结果作为文本 array 存储在 PostgreSQL 中。
我该怎么做?
编辑澄清:
我的数据如下所示:
column 1 | column 2 | column 3
row 1 John | Jack; Carol | Seth; Annie; Doug
row 2 Jim; Cassie; Jane | Anne | Laura; Bob
现在,当我运行我的 rake 任务时,“John”作为文本进入 PostgreSQL。 “劳拉;鲍勃”也作为文本进入 PostgreSQL。但是,我希望将“Laura; Bob”(以及类似的“Jack;Carol”、“Seth;Annie;Doug”和“Jim;Cassie;Jane”)作为文本进入 PostgreSQL 数组。一个这样的数组看起来像 [Jack, Carol]。
【问题讨论】:
标签: ruby-on-rails postgresql csv