При настройке нового форума Discourse с включённой опцией «требовать одобрение пользователей» я обнаружил, что после создания и последующего удаления тестового пользователя тот же идентификатор пользователя был позже повторно использован при регистрации реального пользователя. Однако, поскольку в таблице public.reviewables осталась запись с тем же target_id, для второго пользователя не была создана новая запись. В результате интерфейс отображал уже удалённое имя пользователя при запросе на одобрение нового пользователя.
Как вы удалили первоначального тестового пользователя? Это было сделано через интерфейс пользователя Discourse или через консоль Rails?
Вся работа по управлению пользователями была выполнена через интерфейс.
Мне не удалось воспроизвести эту проблему, и, к сожалению, я не фиксировал все выполняемые шаги, так как только начинал изучать работу с Discourse. У меня есть текущие данные из таблиц users и reviewables, которые частично подтверждают то, что я наблюдал — возможно, там есть какая-то подсказка, а также логи nginx и rails.
Мы используем последовательности PG для идентификаторов пользователей, и они всегда возрастают. Даже если вы откатите транзакцию, последовательность продолжит увеличиваться.
Нарушить это ограничение можно только при прямом вмешательстве в базу данных (например, сброс последовательности идентификаторов в таблице пользователей).
Я закрываю эту задачу до получения воспроизводимого примера. Если вы сможете воспроизвести эту ситуацию, пожалуйста, пометьте задачу для повторного открытия.