articles:informatique:nettoyage_de_la_base_de_donnee_de_pleroma
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
articles:informatique:nettoyage_de_la_base_de_donnee_de_pleroma [25/04/2020 10:11] – [Suppressions des activités distantes anciennes] antoineve | articles:informatique:nettoyage_de_la_base_de_donnee_de_pleroma [25/04/2020 21:33] – [Suppressions de utilisateurs] antoineve | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Suppressions des activités | + | ====== Suppressions des activités |
- | + | ===== Sans tenir compte des personnes suivies ===== | |
- | * Création d'une table temporaire contenant toutes les activités locales | + | |
<code sql> | <code sql> | ||
- | CREATE TABLE activities2 AS SELECT * FROM activities WHERE local = True; | + | -- Il est important de d' |
+ | -- puisqu' | ||
+ | -- de lien avec cette table. | ||
+ | -- | ||
+ | -- 1ère partie pour la table activities | ||
+ | -- | ||
+ | DELETE | ||
+ | WHERE local = false | ||
+ | AND updated_at < (CURRENT_DATE - INTERVAL '90 days' | ||
+ | -- | ||
+ | -- 2ème partie pour la table objects | ||
+ | -- | ||
+ | DELETE FROM objects | ||
+ | WHERE id NOT IN (SELECT CAST(data->>' | ||
+ | AND data->>' | ||
+ | AND updated_at < (CURRENT_DATE - INTERVAL '90 days'); -- Ici 90 jours, à ajuster si besoin | ||
</ | </ | ||
- | * Insertion | + | |
+ | ===== En tenant compte | ||
<code sql> | <code sql> | ||
- | INSERT INTO activities2 SELECT * FROM activities WHERE data->>' | + | ? |
</ | </ | ||
- | * Insertion des activités | + | |
+ | |||
+ | ====== Suppressions d' | ||
+ | |||
+ | ===== Ceux qui n'ont aucun lien avec les activités | ||
<code sql> | <code sql> | ||
- | INSERT INTO activities2 | + | DELETE FROM users |
+ | WHERE ap_id NOT IN ( | ||
+ | SELECT | ||
+ | WHERE data->>' | ||
+ | AND ap_id NOT IN ( | ||
+ | SELECT actor FROM activities | ||
+ | AND ( | ||
+ | ap_id LIKE ' | ||
+ | OR ap_id LIKE '%/ | ||
+ | OR ap_id LIKE ' | ||
+ | OR ap_id LIKE ' | ||
+ | OR ap_id LIKE ' | ||
</ | </ | ||
- | * Suppression des doublons | + | ===== Ceux qui n'ont aucun followers et ne suivent personnes ===== |
<code sql> | <code sql> | ||
- | DELETE FROM activities2 | + | DELETE FROM users |
+ | WHERE following_count = 0 | ||
+ | AND follower_count = 0; | ||
</ | </ | ||
- | * Vidange de la table des activités | ||
- | <code sql> | ||
- | DELETE FROM activities; | ||
- | </ | ||
- | * Insertion des activités conservées | ||
- | <code sql> | ||
- | INSERT INTO activities SELECT * FROM activities2; | ||
- | </ | ||
- | * Suppression de la table temporaire | ||
- | <code sql> | ||
- | DROP TABLE activities2; | ||
- | </ | ||
- | ====== Suppresions des objects devenus inutiles ====== | ||
- | ====== Suppressions de utilisateurs dont on n' | ||
- | |||
- | Cette requête va supprimer les utilisateurs distants qui n'ont pas commnuniqué avec l' | ||
- | |||
- | <code sql> | ||
- | DELETE FROM users WHERE last_refreshed_at < (CURRENT_DATE - INTERVAL '90 days') AND local = False; | ||
- | </ | ||
- | |||
articles/informatique/nettoyage_de_la_base_de_donnee_de_pleroma.txt · Dernière modification : 25/04/2020 22:04 de antoineve