mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-04 12:14:37 +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