blob: 2f7376f91d09f998650d243dff954cc486bcebc5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# frozen_string_literal: true
class AddPollParticipationsUniqueIndexOnAuthorAndPoll < ActiveRecord::Migration[5.1]
def change
reversible do |change|
change.up do
duplicate_query = "WHERE a1.poll_id = a2.poll_id AND a1.author_id = a2.author_id AND a1.id > a2.id"
if AppConfig.postgres?
execute("DELETE FROM poll_participations AS a1 USING poll_participations AS a2 #{duplicate_query}")
else
execute("DELETE a1 FROM poll_participations a1, poll_participations a2 #{duplicate_query}")
end
end
end
add_index :poll_participations, %i[poll_id author_id], unique: true
remove_index :poll_participations, :poll_id
end
end
|