У нас есть эта большая таблица «избранных», и мы столкнулись с проблемой, которая выявила тот факт, что у нас нет уникального ограничения на user
, favorite_type
и favorite_id
. Я сделал миграцию, которая добавит индекс к этим 3, но это не сработает, потому что у нас есть существующие данные с одинаковым набором записей. Там есть и другие данные (updated_at
, created_at
, id
), который отлично проигрывает, но делает его несовершенным.Дедублирующие записи в большой таблице, которые имеют одинаковые значения в нескольких столбцах.
Есть ли способ в рельсах (3.2.x) для этого или способ (my
) SQL?
Я знаю, что могу вытащить все из них, затем группировать и сопоставлять удаление всех дополнительных элементов, но это очень большая таблица (1mil +), и мы не можем иметь длительные миграции.
Хм, это сработает. Я дам вам галочку через день, хочу посмотреть, есть ли у кого-нибудь хитроумный трюк, о котором я не думаю, но у меня есть ощущение, что ваш путь будет лучше. –