phpList : suppression d’une campagne
Je n’ai pas trouvé le moyen, au travers de l’interface proposée par phpList de supprimer une campagne. Aussi ai-je dû recourir à ce bon vieux SQL. Après m’être connecté avec PuTTY, j’ai établi un tunnel SSH afin de me connecter au moteur de bases de données MariaDB via HeidiSQL.
Liste des tables contenant le champ messageid
La table principale qui stocke l’identifiant et les métadonnées de la campagne est la table message. Des informations complémentaires se situent dans messagedata. Toutes les tables en relation avec message le sont au travers du champ messageid ou message. La requête ci-dessous a pour objet d’établir la liste des tables comprenant ce champ :
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM information_schema.`COLUMNS` WHERE COLUMN_NAME IN ('message','messageid') AND TABLE_SCHEMA='phplist';
Supprimer toutes les données des campagnes
L’exemple ci-dessous montre comment effacer les données des campagnes dont les identifiants sont les numéros 27 et 30.
DELETE FROM phplist_linktrack_userclick WHERE messageid IN (27,30); DELETE FROM phplist_linktrack_uml_click WHERE messageid IN (27,30); DELETE FROM phplist_linktrack_ml WHERE messageid IN (27,30); DELETE FROM phplist_linktrack WHERE messageid IN (27,30); DELETE FROM phplist_user_message_view WHERE messageid IN (27,30); DELETE FROM phplist_user_message_bounce WHERE message IN (27,30); DELETE FROM phplist_user_message_forward WHERE message IN (27,30); DELETE FROM phplist_usermessage WHERE messageid IN (27,30); DELETE FROM phplist_listmessage WHERE messageid IN (27,30); DELETE FROM phplist_message_attachment WHERE messageid IN (27,30); DELETE FROM phplist_messagedata WHERE id IN (27,30); DELETE FROM phplist_message WHERE id IN (27,30);