Skip to content

Commit aea3b53

Browse files
authored
Merge pull request #2560 from mroderick/fix/invitation-log-entry-unique-constraint
fix(invitations): remove overly restrictive unique constraint on invitation log entries
2 parents 44c2ff9 + 69b7c1a commit aea3b53

File tree

4 files changed

+14
-12
lines changed

4 files changed

+14
-12
lines changed

app/models/invitation_log_entry.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,4 @@ class InvitationLogEntry < ApplicationRecord
44
belongs_to :invitation_log
55
belongs_to :member
66
belongs_to :invitation, polymorphic: true, optional: true
7-
8-
validates :member_id, uniqueness: { scope: %i[invitation_type invitation_id] }, allow_nil: true
97
end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class RemoveGlobalUniqueConstraintFromInvitationLogEntries < ActiveRecord::Migration[8.1]
2+
def up
3+
remove_index :invitation_log_entries,
4+
name: 'idx_on_invitation_type_invitation_id_6d6ef495e6'
5+
end
6+
7+
def down
8+
add_index :invitation_log_entries,
9+
%i[invitation_type invitation_id],
10+
name: 'idx_on_invitation_type_invitation_id_6d6ef495e6',
11+
unique: true
12+
end
13+
end

db/schema.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema[8.1].define(version: 2026_04_08_220120) do
13+
ActiveRecord::Schema[8.1].define(version: 2026_04_10_174346) do
1414
# These are extensions that must be enabled in order to support this database
1515
enable_extension "pg_catalog.plpgsql"
1616

@@ -299,7 +299,6 @@
299299
t.datetime "updated_at", null: false
300300
t.index ["invitation_log_id", "status"], name: "index_invitation_log_entries_on_invitation_log_id_and_status"
301301
t.index ["invitation_log_id"], name: "index_invitation_log_entries_on_invitation_log_id"
302-
t.index ["invitation_type", "invitation_id"], name: "idx_on_invitation_type_invitation_id_6d6ef495e6", unique: true
303302
t.index ["invitation_type", "invitation_id"], name: "index_invitation_log_entries_on_invitation"
304303
t.index ["member_id", "processed_at"], name: "index_invitation_log_entries_on_member_id_and_processed_at"
305304
t.index ["member_id"], name: "index_invitation_log_entries_on_member_id"

spec/models/invitation_log_entry_spec.rb

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,4 @@
1616
})
1717
end
1818
end
19-
20-
describe 'validations' do
21-
it 'validates uniqueness of member_id scoped to invitation' do
22-
entry = Fabricate(:invitation_log_entry)
23-
expect(entry).to validate_uniqueness_of(:member_id)
24-
.scoped_to(:invitation_type, :invitation_id)
25-
end
26-
end
2719
end

0 commit comments

Comments
 (0)