def deduplicate_account!(account_ids)
accounts = Account.where(id: account_ids).to_a
- accounts = account.first.local? ? accounts.sort_by(&:created_at) : accounts.sort_by(&:updated_at).reverse
+ accounts = accounts.first.local? ? accounts.sort_by(&:created_at) : accounts.sort_by(&:updated_at).reverse
reference_account = accounts.shift
accounts.each do |other_account|
# to check for (and skip past) uniqueness errors
[Follow, FollowRequest, Block, Mute].each do |klass|
klass.where(account_id: duplicate_account.id).find_each do |record|
- record.update(account_id: main_account.id)
- rescue ActiveRecord::RecordNotUnique
- next
+ begin
+ record.update(account_id: main_account.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
+ end
end
klass.where(target_account_id: duplicate_account.id).find_each do |record|
- record.update(target_account_id: main_account.id)
- rescue ActiveRecord::RecordNotUnique
- next
+ begin
+ record.update(target_account_id: main_account.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
+ end
end
end
end