• # Brouillon

    Posté par (site web personnel) . En réponse à l’entrée du suivi Nettoyage des 22 ans. Évalué à 3 (+0/-0).

    supprimer les étiquettes posées sur les contenus non publics antérieurs à la date ciblée (de fait invisibles, mais a priori il n'y en a pas avant RoR)

    SELECT COUNT(*) AS cnt FROM taggings,nodes WHERE taggings.node_id=nodes.id AND nodes.public=0 AND date(nodes.created_at)<='2012-03-31';
    +------+
    | cnt |
    +------+
    | 4656 |
    +------+

    (pour 103k étiquettes actuellement)

    supprimer les commentaires sur les contenus non publics antérieurs à la date ciblée (de fait invisibles)

    SELECT COUNT(*) AS cnt FROM comments,nodes WHERE comments.node_id=nodes.id AND nodes.public=0 AND date(nodes.created_at)<='2012-03-31';
    +-----+
    | cnt |
    +-----+
    | 947 |
    +-----+

    (pour 1,8M de commentaires actuellement)

    supprimer les contenus non publics antérieurs à la date ciblée (de fait invisibles)

    SELECT content_type, COUNT(*) AS cnt FROM nodes WHERE nodes.public=0 AND date(nodes.created_at)<='2012-03-31' GROUP BY content_type;
    +--------------+-------+
    | content_type | cnt |
    +--------------+-------+
    | Diary | 30 |
    | News | 11203 |
    | Poll | 34 |
    | Post | 38 |
    | Tracker | 2 |
    | WikiPage | 100 |
    +--------------+-------+

    (pour 106k contenus actuellement)

    purger les comptes (accounts+users) créés avant la date ciblée et toujours fermés (dont personne n'a demandé leur réouverture) et qui ne sont associés à aucun commentaire, aucun contenu ou aucune étiquette (aucun intérêt à les garder)

    SELECT COUNT(*) AS cnt FROM users LEFT JOIN accounts ON accounts.user_id=users.id LEFT JOIN comments ON comments.user_id=users.id LEFT JOIN nodes ON nodes.user_id=users.id AND nodes.public=1 LEFT JOIN taggings ON taggings.user_id=users.id LEFT JOIN tags ON tags.id=taggings.user_id AND tags.public=1 WHERE (accounts.id IS NULL OR accounts.role='inactive') AND date(users.created_at) < '2012-03-31' AND comments.id IS NULL AND nodes.id IS NULL AND taggings.id IS NULL;
    +------+
    | cnt |
    +------+
    | 1878 |
    +------+

    (pour 45k comptes actuellement)

    purger les comptes (accounts) créés avant la date ciblée et toujours fermés (dont personne n'a demandé leur réouverture) et qui sont associés à un commentaire ou un contenu ou une étiquette (plus délicat si on doit confirmer plus tard l'auteur pour savoir si on peut anonymiser par exemple...)

    on parle globalement de l'ensemble des comptes concernés moins ceux précédemment trouvés soit :

    SELECT (COUNT(*)-1878) AS cnt FROM users LEFT JOIN accounts ON accounts.user_id=users.id WHERE (accounts.id IS NULL OR accounts.role='inactive') AND date(users.created_at) < '2012-03-31';
    +-------+
    | cnt |
    +-------+
    | 16263 |
    +-------+

    (pour 45k comptes actuellement)