Manuel:DeleteRevision.php

From mediawiki.org
This page is a translated version of the page Manual:DeleteRevision.php and the translation is 100% complete.
Avertissement Avertissement : This script has been removed in MediaWiki 1.30 with commit phabricator:rMW918e4c394c424a287f32853b2967b0c8d4dfc97c.

Détails

Le fichier deleteRevision.php est un script de maintenance pour supprimer une ou plusieurs révisions en les déplaçant dans le tableau d'archives. Ceci rend la révision invisible sur la partie publique du wiki. Si il fonctionne correctement, le script deleteArchivedRevisions.php peut complètement enlever la révision de la base de donnée si besoin.

Pour trouver l'ID de a révision à détruire, regardez l'URL pour chaque date dans la page historique. Il ressemblera à quelque chose comme http://yourwiki/index.php?title=Page_Title&oldid=1234. L'ID de révision est le oldid, 1234 dans cet exemple. Cette révision peut être supprimée comme ceci.

php maintenance/deleteRevision.php 1234

si voss voulez supprimer plusieurs révisions, séparez les avec des espaces:

php maintenance/deleteRevision.php 1234 5678

Suppression de la page en cours de révision

Ce script peut aussi être utilisé pour supprimer la révision actuelle d'une page. Dans ce cas le script s'assure de mettre à jour l'enregistrement de page pour qu'il pointe toujours à la bonne révisions: Il met à jour le champ page_latest de la page en question dans le tableau pages. Il triera les révisions disponibles par rev_timestamp et définira le page_latest à la révision avec l'horodatée le plus récent. Ceci sert à assurer l'intégrité de la base de données.

Fixation le domaine rev_parent_id

Le script ne met pasà jour le champ rev_parent_id de cette révision, qui suit celle qui a été supprimée. Ceci cause des calculs incorrects de différences de tailles de page dans les historiques de pages, comme MédiaWiki essaie toujours de les calculer avec la révision qui a été supprimée. Il obtient une taille de 0 bits pour cette révision et donc une différence de taille erronée.

Actuellement ceci peut être résolu manuellement en mettant à jour manuellement le champ rev_parent_id de la révision qui suit celle qui a été supprimée. Un problème devrait être créé dans le bugtracker et ce problème devrait être corrigé correctement.

Jusqu'à que ce problème soit résolu, les requêtes suivantes repèrent les pages avec un rev_parent_id erroné:

SELECT * FROM revision where rev_parent_id != "0" and rev_parent_id NOT IN (
   SELECT DISTINCT (rev_id) FROM revision
) order by rev_page, rev_id;

Ceci affiche une liste avec les pages affectées (rev_page) et les révisions problématiques (rev_id). Utiliser la valeur de rev_page dans la requête suivante:

SET @seite = 4711;
# Displaying basic information about that page:
SELECT * FROM page where page_id = @seite;
# Selecting the revisions:
SELECT rev_page, rev_id, rev_parent_id, rev_user_text, rev_user_text FROM revision where rev_page=@seite order by rev_id;

Ceci affiche une liste de révision pour la page en question (ici pour la page 4711), triées par rev-id. Faire défiler jusqu'à la révision problématique et réparer sa valeur rev-parent-id pour qu'elle pointe à la révision précédente (valeur rev-id de la prochaine ligne plus ancienne dans l'ensemble résultat)

La révision mère de la toute première révision d'une page est toujours la révision 0.

Voir aussi