PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Rails необработена заявка за csv формат, която да бъде върната чрез контролер

AFAIK трябва да използвате copy_data метод на основната връзка с база данни PostgreSQL за това:

И дори има пример:

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

Обвивката на ActiveRecord за необработената връзка с база данни не знае какво copy_data е, но можете да използвате raw_connection за да го разопаковате:

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

Това ще ви остави масив от CSV низове в csv (един CSV ред на запис в масив) и можете да csv.join("\r\n") за да получите окончателните CSV данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групиране по клаузи — GeneralBits на elein

  2. Как се пише WITH(CTE) във функция в PostgreSQL

  3. Изберете всеки месец между начална и крайна дата

  4. Грешки на Postgres HStore - Неизвестен оператор

  5. ActiveRecord заявката е много по-бавна от обикновения SQL?