Скорее всего, проще всего изменить DRC на DRC1 (или что-то подобное) в веб-интерфейсе (и, думаю, это также исправит ссылки на @ в постах?). Менять username_lower не нужно, так как он вычисляется автоматически.
Неожиданный поворот: независимо от того, на какого из двух пользователей я нажимаю в веб-GUI, я получаю детали профиля только одного из них (первого, с наименьшим ID). Похоже, что даже веб-GUI путается из-за этих дубликатов.
Я собирался переименовать самого нового пользователя, поскольку считал, что право на имя принадлежит тому, кто зарегистрировал его первым, но GUI не предоставляет мне такой возможности.
Это всё вызывает у меня сильное беспокойство. Думаю, стоит сделать ещё одну резервную копию.
Верно. GUI будет использовать индекс, который вернет первый элемент (потому что он находится в индексе).
Я бы, наверное, переименовал нового пользователя в Rails, я так думаю. На этом моя бесплатная поддержка по этому вопросу заканчивается. Если вы не сможете найти пример и никто другой не поможет, вы можете написать на jay@literatecomputing.com, если у вас есть бюджет.
В моём случае проблема заключалась в дублировании пользователей. Поэтому, сосредоточившись на этом, я нашёл следующий рабочий метод их выявления:
SELECT username_lower, count(*) from users GROUP by username_lower HAVING count(*) > 1;
Это позволило получить список дубликатов с указанием количества для каждого.
username_lower | count
----------------+-------
jagger | 2
richards | 2
patrick | 2
peter | 2
jagman | 2
(5 строк)
После устранения этих дубликатов мне удалось успешно выполнить перестроение индекса, а затем — успешное восстановление данных.
Отлично! Я и сам не сразу вспомнил про count(*).