在设置新 Discourse 实例并将“必须批准用户”选项启用后,我发现:在创建并删除一个测试用户后,当真实用户注册时,系统复用了相同的用户 ID。但由于 public.reviewables 表中仍残留一条具有相同 target_id 的记录,导致未为该新用户创建新记录。结果,UI 在提示审批新用户时,却列出了已被删除的用户名。
2 个赞
你是如何删除初始测试用户的?是通过 Discourse 用户界面,还是从 Rails 控制台操作的?
2 个赞
所有用户管理均在 UI 中完成
我无法复现此问题,而且由于当时我正在学习如何操作 Discourse,因此很遗憾没有详细记录我所执行的所有步骤。不过,我手头有来自 users 和 reviewables 表的当前记录,这些记录部分印证了我所看到的情况,或许其中包含一些线索。此外,我还提供了 nginx 和 Rails 的日志。
2 个赞
我们使用 PostgreSQL 序列作为用户 ID,它们只会递增。即使回滚事务,序列仍会继续增加。
除非直接操作数据库(例如重置用户表的 ID 序列),否则无法打破这一约束。
在收到可复现的示例之前,我将关闭此问题。如果您能复现此情况,请标记以重新开启。
1 个赞