# frozen_string_literal: true class RemoveDuplicateReactions < ActiveRecord::Migration[7.0] def up execute <<~SQUIRREL DELETE FROM reactions WHERE id IN ( SELECT id FROM ( SELECT id, row_number() over (PARTITION BY parent_type, parent_id, user_id ORDER BY id) AS row_number FROM reactions )s WHERE row_number >= 2 ) SQUIRREL add_index :reactions, %i[parent_type parent_id user_id], unique: true end def down remove_index :reactions, %i[parent_type parent_id user_id] end end