我需要将string array
的一些记录从postgres 9.3
导出到CSV
,然后在Rails 4.2应用中再次将CSV
导回postgres
表。当我将CSV
文件导回psql
表时,会抛出有关string array
个字段的错误。显然string array
无法识别CSV
导出的postgres
。
measure_choices
的字段string array
在Rails迁移文件中定义为:
t.string :measure_choices, array: true, default: []
使用标准CSV
库导出Ruby CSV
:
CSV.generate do |csv|
row = Array.new
#making row.
row << rails_obj.measure_choices
....
csv << row
end
我注意到postgres
和Rails
之间关于代表string array
的一些差异。空数组在psql中为{},在rails中为[]。 psql string array
中的字符串没有双引号,Rails似乎有双引号。
将psql导出为CSV格式正确的psql导入方法是什么?
更新:
以下是分别从psql
命令行和Rails
导出的2个CSV文件。
PSQL Way
:
RAILS Way
:
导出回psql表时,Rails导出的CSV
中的双引号和[]会导致问题。