diff --git a/lib/tasks/epp.rake b/lib/tasks/epp.rake index e03835dad..99062994f 100644 --- a/lib/tasks/epp.rake +++ b/lib/tasks/epp.rake @@ -8,12 +8,33 @@ namespace :epp do desc 'Trim logs' task trim_documents: :environment do puts '-----> Running query' - sql = <<-SQL - UPDATE epp_logs SET request = regexp_replace(request, '', '[FILTERED]<\eis:legalDocument>'); - SQL - ApiLog::EppLog.connection.execute(sql) + puts '-----> Selecting count of all rows' - puts "-----> Query done" + rows = ApiLog::EppLog.where("request ~* ?", '') + count = rows.count + + puts "-----> Total rows #{count}" + + + i = 0 + ids = [] + + ApiLog::EppLog.where("request ~* ?", '').find_each(batch_size: 10000)do |x| + + trimmed = x.request.gsub(/]+)>([^<])+<\/eis:legalDocument>/, "[FILTERED]") + x.request = trimmed + x.save + + ids.push x.id + i += 1 + + if i = 500 + i = 0 + puts "500 rows updated #{ids.join(', ')}" + end + + end + puts "-----> Query done" end end