docbrown/db/migrate/20230622151553_add_unique_constraint_to_segmented_users.rb
Ben Halpern 479f7b6c6c
Add unique index constraint to segmented users (#19627)
* Add unique index constraint to segmented users

* Run migration

* Add de-duping query
2023-06-26 09:06:18 -04:00

26 lines
No EOL
962 B
Ruby

class AddUniqueConstraintToSegmentedUsers < ActiveRecord::Migration[7.0]
disable_ddl_transaction!
def up
# remove the old index first
remove_index :segmented_users, name: "index_segmented_users_on_audience_segment_and_user", algorithm: :concurrently
# add a new index with uniqueness constraint
add_index :segmented_users,
%i[audience_segment_id user_id],
unique: true,
name: "index_segmented_users_on_audience_segment_and_user",
algorithm: :concurrently
end
def down
# to reverse the migration, remove the unique index
remove_index :segmented_users, name: "index_segmented_users_on_audience_segment_and_user", algorithm: :concurrently
# and add back the old index
add_index :segmented_users,
%i[audience_segment_id user_id],
name: "index_segmented_users_on_audience_segment_and_user",
algorithm: :concurrently
end
end