From ed108be87208ba5191317df0389b0fcd3d727bd2 Mon Sep 17 00:00:00 2001 From: james_ <1606304+zz9pzza@users.noreply.github.com> Date: Wed, 8 Jan 2025 19:13:47 +0000 Subject: [PATCH] Add a transaction --- lib/tasks/after_tasks.rake | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/lib/tasks/after_tasks.rake b/lib/tasks/after_tasks.rake index 6d831976f71..762d243ceea 100644 --- a/lib/tasks/after_tasks.rake +++ b/lib/tasks/after_tasks.rake @@ -363,24 +363,26 @@ namespace :After do Pseud.no_touching do Pseud.find_in_batches.with_index do |batch, index| - batch.each do |pseud| - next if pseud.icon_file_name.blank? - - image = pseud.icon_file_name - ext = File.extname(image) - image_original = "original#{ext}" - - icon_url = if Rails.env.production? - "https://s3.amazonaws.com/otw-ao3-icons/icons/#{pseud.id}/#{image_original}" - else - "https://s3.amazonaws.com/otw-ao3-icons/staging/icons/#{pseud.id}/#{image_original}" - end - begin - pseud.icon.attach(io: URI.parse(icon_url).open, - filename: image_original, - content_type: pseud.icon_content_type) - rescue StandardError => e - puts "Error '#{e}' copying #{icon_url}" + ActiveRecord::Base.transaction do + batch.each do |pseud| + next if pseud.icon_file_name.blank? + + image = pseud.icon_file_name + ext = File.extname(image) + image_original = "original#{ext}" + + icon_url = if Rails.env.production? + "https://s3.amazonaws.com/otw-ao3-icons/icons/#{pseud.id}/#{image_original}" + else + "https://s3.amazonaws.com/otw-ao3-icons/staging/icons/#{pseud.id}/#{image_original}" + end + begin + pseud.icon.attach(io: URI.parse(icon_url).open, + filename: image_original, + content_type: pseud.icon_content_type) + rescue StandardError => e + puts "Error '#{e}' copying #{icon_url}" + end end end