Ох… мы уже сталкивались с этим при крупных обновлениях версий PostgreSQL. @saj недавно работал над чем-то подобным здесь.
Если говорить подробно, то при некоторых обновлениях PostgreSQL настройки сортировки базы данных могут измениться из-за обновлений в libc. В таком случае у вас не остаётся выбора — необходимо выполнить переиндексацию.
Вот что произошло в вашем случае:
Вы выполнили крупное обновление.
Ваш индекс стал частично повреждённым.
Была выполнена повторная вставка пользователя для talk@remobjects.com — теперь у вас есть дублирующаяся строка, несмотря на то что индекс это запрещает.
Мы попытались изменить строку, и это выявило проблему, так как система не смогла обновить несвязанное поле.
Решение:
Найдите идентификаторы двух пользователей, у которых указан один и тот же адрес электронной почты talk@remobjects.com.
Удалите или измените адрес электронной почты у одного из них.
Продолжайте работу по плану.
Срочно выполните полную переиндексацию базы данных, чтобы выявить другие возможные проблемы.
Ваше решение помогло, но «апгрейд» уже завершился (обновлений больше нет). Нужно ли мне что-то особенное сделать, чтобы перезапустить эти миграции? Я, конечно, удалил дубликаты email-адресов.