AFAIK musisz użyć copy_data
metoda na bazowym połączeniu z bazą danych PostgreSQL w tym celu:
I jest nawet przykład:
conn.copy_data "COPY my_table TO STDOUT CSV" do
while row=conn.get_copy_data
p row
end
end
Opakowanie ActiveRecord dla surowego połączenia z bazą danych nie wie, co copy_data
jest, ale możesz użyć raw_connection
aby go rozpakować:
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
To dałoby ci tablicę ciągów CSV w csv
(jeden wiersz CSV na wpis tablicy) i możesz csv.join("\r\n")
aby uzyskać ostateczne dane CSV.