Как использовать функцию копирования postgres в граблях? - PullRequest
1 голос
/ 26 января 2020

Я хотел бы скопировать CSV-файл в производственную базу данных (в таблице без модели рельсов). Это большой файл с 130 000 строк. Эти файлы находятся в db / csv / datas.csv

Я пытался импортировать с помощью:

  CSV.foreach(Rails.root.join('db/csv/datas.csv'), headers: true) do |row|
  DataService.import(row.to_hash.symbolize_keys)

Но это очень и очень долго. Могу ли я использовать функцию копирования postgres в граблях? Где я должен поместить CSV-файл на сервер?

namespace :datas do
  desc 'datas import'
    task import_csv: :environment do
      copy_sql_cmd = <<-SQL
        COPY datas FROM 'db/csv/datas.csv' CSV HEADER;
      SQL

      ActiveRecord::Base.transaction do
        ActiveRecord::Base.connection.execute(copy_sql_cmd)
      end
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...