我试图将数据从csv文件导入到postgresql中,如下所示。
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv,
format: :csv
)
但是我遇到了这样的错误。
TypeError: wrong argument type CSV::Row (expected String)
谁知道我该如何解决?
正如您可能在Sequel
测试中看到的那样,该Database#copy_into
方法需要一个字符串,其列用逗号分隔,行用行分隔符分隔\n
。
您正在尝试传递一个ruby内部CSV
表示形式,该表示形式通常是一个数组数组。我不是ruby的专家CSV
,但是要使用它来制作适当的字符串,可以使用:
csv.map { |row| row.join ',' }.join "\n"
总结:
csv = CSV.open(path, { col_sep: ',', headers: :first_row })
MatchDB.db.copy_into(:property,
data: csv.map { |row| row.join ',' }.join "\n",
format: :csv
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句