У меня есть приложение для рельсов, в котором я использую самородки и драгоценности из паранойи.
У меня есть таблица users в postgres db, которая имеет уникальную проверку в столбце электронной почты. Я использую паранойю для мягкого удаления, проблема заключается в том, когда я удаляю пользователя, а затем tey, чтобы создать пользователя, используя электронную почту удаленного пользователя, он выдает ошибку PG::UniqueViolation: ERROR
.
Я прочитал об этом и знаю, что это можно решить, используя функцию частичного индекса рельсов.Уникальная проблема ограничения paranoia gem
http://scottsmerchek.com/2015/08/03/taking-the-d-out-of-crud/
https://devcenter.heroku.com/articles/postgresql-indexes#partial-indexes
Как я это реализовать?
Извините за плохое форматирование, набрав с мобильного.
Я использую Postgres, который поддерживает частичные индексы, 'CREATE UNIQUE INDEX customer_name_index на клиенте (имя) WHERE deleted_on IS NULL; '. Как мне получить что-то вроде этого? Что будет с миграцией? @Rakesh –
Вы попробовали решение? –
Не могли бы вы объяснить, почему вы делали remove_index перед add_index? Индекс добавлен по умолчанию? @RakeshPatidar –