感谢您的关注,@pfaffman!
有用户记录没有 last_seen_at,创建于数月前,approved=False,active=False,但它们没有被清除。
有用户记录 last_seen_at > 7 天(数月前)且 views=0,但它们没有被清除。
无论该宽限期标志使用的标准是什么,它都没有选中这些记录。
有人能发布确切的查询吗,这样我就可以理解还涉及哪些其他因素?
不,直接查看数据库,有用户记录符合每个标准,但不是所有标准。看起来数据库中的 users 表不一致。存在 topics_entered 或 posts_read_count 非零但 views=0 的记录。存在 topics_entered=0 和 posts_read_count=0 但 views 非零的记录。
需要记住的关键点是,在网站开发过程中,设置不是最优的,人类和机器人都在注册。OR 子句似乎涵盖了所有这些。现在网站已经稳定下来,(我希望)设置合理,我不期望新的注册会产生同样的异常。
我打算多次运行脚本,使用不同的标准。我将首先在环境外查询记录,然后运行静默脚本,仅针对我真正想要的记录。几周后,我将进行最后一次运行,仅选择静默记录(任何实际返回的用户都将被移除标志),并清除所有这些记录:
UserDestroyer.new(admin_user).destroy(user, reassign_to: archive_user)
我的总体问题是,v0.0.2 脚本及其选择、记录和静默的方法是否适用于 Discourse 系统。我不知道在这样的循环中是否还有其他事情要做。我从未创建和运行过自己的脚本,所以这是请求检查我是否存在菜鸟的愚蠢错误。
谢谢!!