Publié le: 2020-10-25

Mattermost - supprimer d'anciens posts

La version community de Mattermost n’inclut pas par défaut de rétention sur les messages dans les canaux. C’est une fonctionnalité pour la version entreprise uniquement.nel.

Si vous utilisez la version community depuis un certain temps, vous verrez que la base grossit sans jamais réduire de taille. Néanmoins vous pouvez nettoyer les messages directement en base afin de prévenir une croissance infinie de celle-ci.

Pour effectuer ce nettoyage vous pouvez jouer les requêtes suivantes à chaud afin de supprimer définitivement les messages plus vieux qu’un intervale:

delete from posts where createat < extract(epoch from (now() - interval '6 months'))::int8 * 1000;
delete from reactions where postid not in (select id from posts);
delete from fileinfo where postid not in (select id from posts);

Dans le cas présent nous avons nettoyé quelques références complémentaires sur d’autres tables à cause de contraintes manquantes sur la base de données de Mattermost. J’ai publié une issue sur Github, en espérant qu’elle soit corrigée afin de faciliter notre vie et celle des développeurs :).