Merci de votre intérêt, @pfaffman !
Il existe des enregistrements d’utilisateurs sans last_seen_at, créés il y a des mois, approved=False, active=False, et ils ne sont pas purgés.
Il existe des enregistrements d’utilisateurs avec last_seen_at > 7 jours (anciens de plusieurs mois) et 0 vues, et ils ne sont pas purgés.
Quels que soient les critères utilisés avec ce drapeau de période de grâce, ils ne sélectionnent pas ces enregistrements.
Quelqu’un peut-il poster la requête exacte qui est utilisée ici afin que je puisse comprendre quels autres facteurs sont impliqués ?
Non, en regardant directement la base de données, il existe des enregistrements d’utilisateurs qui correspondent à chaque critère, mais pas à tous. Il semble que la table des utilisateurs dans la base de données soit incohérente. Il existe des enregistrements avec des topics_entered ou des posts_read_count non nuls, mais avec views=0. Il existe des enregistrements avec topics_entered=0 et posts_read_count=0, mais views est non nul.
Le point clé à retenir est que pendant le développement de ce site, les paramètres n’étaient pas optimaux et des humains et des bots s’enregistraient. La clause OR semble capturer tous ces cas. Maintenant que le site est stabilisé avec des paramètres (je l’espère) sensés, je ne m’attends pas à ce que les nouvelles inscriptions entraînent les mêmes anomalies.
J’ai l’intention d’exécuter le script plusieurs fois avec des critères différents. Je vais d’abord interroger les enregistrements, en dehors de l’environnement, puis exécuter le script de silence pour cibler uniquement les enregistrements que je veux vraiment. Dans quelques semaines, je ferai une dernière exécution, je sélectionnerai uniquement les enregistrements silencieux (tous ceux qui sont réellement revenus verront le drapeau supprimé), et je les purgerai tous :
UserDestroyer.new(admin_user).destroy(user, reassign_to: archive_user)
Ma question générale est de savoir si le script v0.0.2, avec son approche de sélection, de journalisation et de silence, est correct pour un système Discourse. Je ne sais pas s’il y a autre chose à faire dans une boucle comme celle-ci. Je n’ai jamais créé et exécuté mon propre script, donc c’est une demande pour que vous vérifiiez mes erreurs de noob.
Merci !!