-1

我的系统中有一个 .csv 文件,我想将其导入openproject 并将文件的内容映射到openproject 数据库

4

1 回答 1

0

过去,当我必须将 CSV 文件加载到数据库中时,我喜欢执行 rake 任务。

我的任务如下所示:

#/lib/tasks/import_csv.rake
require 'csv'
namespace :imports do
desc 'import from csv'
  task :variants => :environment do
    Dir['lib/csv/files/*'].each do |file|
      csv_text = File.read(file)
      csv_text = csv_text.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
      csv = CSV.parse(csv_text, :headers => true)
      csv.each_with_index do |row, index|
        something = Something.find_or_initialize_by(name: row['name'])
        something.address                   = row['address']
        something.save
      end
      file_processed = file.gsub('/files/', '/files_processed/')
      File.rename(file, file_processed) unless Rails.env  == 'development'
    end
  end
end

我希望这个对你有用 :)

于 2017-02-17T14:45:05.300 回答