【问题标题】:Map .csv file to openproject database将 .csv 文件映射到 openproject 数据库
【发布时间】:2017-02-17 13:50:21
【问题描述】:

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

【问题讨论】:

  • 你有什么问题?
  • llya,我想将一个 .csv 文件导入到 openproject 数据库中。总之,我想创建一个导入插件
  • 到目前为止你尝试了什么?
  • Ilya 这是我的要求,我正在寻找我们如何做到这一点的方法

标签: ruby-on-rails ruby database openproject


【解决方案1】:

过去,当我必须将 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

我希望这会有所帮助:)

【讨论】:

  • .csv 应该出现在哪个位置?
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
相关资源
最近更新 更多