about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-05-31 17:22:33 +0200
committerGitHub <noreply@github.com>2018-05-31 17:22:33 +0200
commitfb1ae0152d399db863457963890310a500863b02 (patch)
treefb145d012a6751db61153bf8a7b30482adc26864
parent19b4c666f7f760986be4215ea874f951c617a0df (diff)
Wrong exception class: ActiveRecord::RecordNotUnique, not PG::UniqueViolation (#7688)
* Wrong exception class: ActiveRecord::RecordNotUnique, not PG::UniqueViolation

It's completely not obvious but PG::UniqueViolation is just a string inside the exception message, not the actual class of the exception

* Favourite does not have target_account_id
-rw-r--r--db/migrate/20180528141303_fix_accounts_unique_index.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/db/migrate/20180528141303_fix_accounts_unique_index.rb b/db/migrate/20180528141303_fix_accounts_unique_index.rb
index e949436dc..96cee37f9 100644
--- a/db/migrate/20180528141303_fix_accounts_unique_index.rb
+++ b/db/migrate/20180528141303_fix_accounts_unique_index.rb
@@ -73,15 +73,17 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2]
       klass.where(account_id: duplicate_account.id).find_each do |record|
         begin
           record.update_attribute(:account_id, main_account.id)
-        rescue PG::UniqueViolation
+        rescue ActiveRecord::RecordNotUnique
           next
         end
       end
+    end
 
+    [Follow, FollowRequest, Block, Mute].each do |klass|
       klass.where(target_account_id: duplicate_account.id).find_each do |record|
         begin
           record.update_attribute(:target_account_id, main_account.id)
-        rescue PG::UniqueViolation
+        rescue ActiveRecord::RecordNotUnique
           next
         end
       end