30 lines
712 B
Ruby
30 lines
712 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'yaml'
|
|
require 'csv'
|
|
|
|
namespace :export do
|
|
|
|
desc 'Export all users to csv file.'
|
|
task users: :environment do
|
|
count = 0
|
|
errors_count = 0
|
|
begin
|
|
CSV.open('barong_users.csv', 'w') do |csv|
|
|
csv << %w[uid email level role state]
|
|
User.find_each do |user|
|
|
csv << [user.uid, user.email, user.level, user.role, user.state]
|
|
count += 1
|
|
end
|
|
rescue StandardError => e
|
|
message = { error: e.message, email: user.email, uid: user.uid }
|
|
Rails.logger.error message
|
|
errors_count += 1
|
|
end
|
|
end
|
|
Kernel.puts "Exported #{count} users"
|
|
Kernel.puts "Errored #{errors_count}"
|
|
end
|
|
|
|
end
|