mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-07 05:34:55 +08:00
Merge pull request #8818 from artoscinote/ma_SCI_12284
Add unique constraint to user_assignmnets [SCI-12284]
This commit is contained in:
commit
4f23371448
1 changed files with 24 additions and 0 deletions
|
@ -0,0 +1,24 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddUniqueConstraintToUserAssignments < ActiveRecord::Migration[7.2]
|
||||||
|
def up
|
||||||
|
# delete the duplicates
|
||||||
|
execute(
|
||||||
|
'WITH uniq AS
|
||||||
|
(SELECT DISTINCT ON (user_id, assignable_type, assignable_id, team_id) * FROM user_assignments)
|
||||||
|
DELETE FROM user_assignments WHERE user_assignments.id NOT IN
|
||||||
|
(SELECT id FROM uniq)'
|
||||||
|
)
|
||||||
|
|
||||||
|
remove_index :user_assignments, name: 'index_user_assignments_on_assignable'
|
||||||
|
add_index :user_assignments,
|
||||||
|
%i(assignable_type assignable_id user_id team_id),
|
||||||
|
unique: true,
|
||||||
|
name: 'index_user_assignments_on_unique_assignable_in_team'
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
add_index :user_assignments, %i(assignable_type assignable_id), name: 'index_user_assignments_on_assignable'
|
||||||
|
remove_index :user_assignments, name: 'index_user_assignments_on_unique_assignable_in_team'
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue