Сегодня при обновлении до текущей версии Discourse процесс пересборки завершается неудачей, и я точно не знаю, что является причиной. Установка отставала на несколько итераций (по-моему, версия 2.8x). Обновление образа Docker прошло успешно. Когда я приступил к обновлению Discourse, меня попросили выполнить ручную загрузку и пересборку (в большинстве случаев меня об этом просят), однако пересборка оказалась неудачной.
Ниже приведены результаты поиска по слову “error” с помощью утилиты discourse-doctor. Извините за скриншоты, но веб-клиент VNC, которым я пользуюсь, по-видимому, не поддерживает копирование и вставку.
Я застрял на этапе запуска повторной индексации. Мне удалось запустить процесс (хотя он пока недоступен через веб-интерфейс) и войти в приложение, но дальше продвинуться не получается.
Развивая мысль @Canapin, на случай если вы ещё не догадались, получить уникальные имена пользователей будет несложно, поскольку вы уже выяснили, что racerx — единственное дублирующееся имя.
Сначала, если вы ещё этого не сделали, убедитесь, что racerx2 ещё не существует, чтобы не переносить проблему на другое имя пользователя: (Если вы получили идентификатор, попробуйте другое имя пользователя.)
SELECT id FROM users WHERE username_lower = 'racerx2';
Когда у вас будет свободное имя пользователя, получите идентификаторы дублирующихся аккаунтов с именем racerx:
SELECT id from users WHERE username_lower = 'racerx';
Выберите один из них — неважно какой, хотя я бы выбрал наибольший, затем измените его имя пользователя: (Замените racerx2 на другое имя, если необходимо, а 12345 — на выбранный вами идентификатор racerx.)
UPDATE users SET username_lower = 'racerx2' WHERE id = 12345;
Обновление (было в черновиках несколько дней, извините). Похоже, я разобрался. Не уверен, что выбранный мной подход был правильным, но пересборка прошла успешно.
Мне было сложно изменить/добавить значение racerx в столбце username_lower с помощью синтаксиса, поэтому я поступил иначе: нашел ID нужных строк и изменил значение username_lower в конкретной строке.
Сначала я попытался получить отчет о всех строках в таблице users, где в столбце username_lower содержится “racerx”.
select all from users where username_lower ='racerx';
Исходя из этого, я решил изменить racerx на racerx2. Точно не помню, что именно я ввел, чтобы это произошло. Кажется, это было UPDATE SET from users username_lower racerx to racerx2.