sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails rå forespørgsel til csv-format, der skal returneres via controller

AFAIK skal du bruge copy_data metode på den underliggende PostgreSQL-databaseforbindelse til dette:

Og der er endda et eksempel:

conn.copy_data "COPY my_table TO STDOUT CSV" do
  while row=conn.get_copy_data
    p row
  end
end

ActiveRecords indpakning for den rå databaseforbindelse ved ikke hvad copy_data er, men du kan bruge raw_connection for at pakke den ud:

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

Det ville efterlade dig med en række CSV-strenge i csv (én CSV-række pr. array-indgang), og du kunne csv.join("\r\n") for at få de endelige CSV-data.



  1. MySQL:IF / THEN sætninger i lagrede procedurer

  2. PHP Openssl dekrypterer en AES Mysql-kryptering

  3. MySQL TEKST vs BLOB vs CLOB

  4. Oracle SQL:Valg af en enkelt række med den seneste dato mellem flere kolonner