Я хотел бы скопировать 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