21 lines
548 B
Ruby
21 lines
548 B
Ruby
|
# 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
|