AFAIK müssen Sie den copy_data
verwenden
Methode auf der zugrunde liegenden PostgreSQL-Datenbankverbindung dafür:
Und es gibt sogar ein Beispiel:
conn.copy_data "COPY my_table TO STDOUT CSV" do
while row=conn.get_copy_data
p row
end
end
Der Wrapper von ActiveRecord für die Rohdatenbankverbindung weiß nicht, was copy_data
ist ist, aber Sie können raw_connection
zum Auspacken:
conn = ActiveRecord::Base.connection.raw_connection
csv = [ ]
conn.copy_data('copy stories to stdout with csv header') do
while row = conn.get_copy_data
csv.push(row)
end
end
Das würde Ihnen ein Array von CSV-Strings in csv
hinterlassen (eine CSV-Zeile pro Array-Eintrag) und Sie könnten csv.join("\r\n")
um die endgültigen CSV-Daten zu erhalten.