Проблема PG::UniqueViolation при обновлении до 3.1.0.beta4

Спасибо, Джей.
Мне удалось пересобрать систему и снова запустить свой сайт.

Как вы и советовали, решение заключается в повторении цикла: перестроить индекс, исправить ошибки и повторять до завершения. Я использовал следующую команду, чтобы узнать количество:

SELECT username_lower, count(*) from users GROUP by username_lower HAVING count(*) > 1;

Она возвращала ноль.

Конечно, дубликатов было много, и я хотел узнать точное число. Поэтому я немного изменил запрос:

SELECT username_lower, count(username) from users GROUP by username_lower HAVING count(username) > 1;

Это сработало и вернуло около 50 дубликатов. Я исправил их, перестроил индекс, и сборка прошла успешно.