2
我正在使用Ruby on Rails耙子任务将.csv文件导入PostgreSQL数据库。我的代码,以供参考,下面是:Rails - 在PostgreSQL中将CSV条目导入为数组
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文件,我在格式的条目“的猫,狗,FOO;酒吧”。现在,这个条目被作为“文本”(即数据类型)导入到PostgreSQL中。但是,我想要将文本拆分为“;”,并将拆分结果作为文本存储在PostgreSQL中。array。
我该如何去做这件事?
编辑澄清:
我的数据看起来是这样的:
column 1 | column 2 | column 3
row 1 John | Jack; Carol | Seth; Annie; Doug
row 2 Jim; Cassie; Jane | Anne | Laura; Bob
现在,当我运行rake任务, “约翰” 进入PostgreSQL的文本。 “Laura; Bob”也以文本形式进入PostgreSQL。然而,我想为“Laura; Bob”(并且类似地,“Jack; Carol”,“Seth; Annie; Doug”和“Jim; Cassie; Jane”)以文本形式进入PostgreSQL array 。一个这样的阵列看起来像[杰克,卡罗尔]。
嗨南达 - 谢谢你的回答!我试图将一个条目(例如“猫;狗;汽车”)变成一个数组。我实际上并不希望整行数据是一个数组。 – user1274740
在这种情况下,您可以使用'a =“cat; dog; car”; a.split(“;”)'这会返回一个数组 – Nanda
“cat; dog; car”和“foo; bar;是.csv文件中的示例条目,虽然。 – user1274740