Manuel:DeleteRevision.php
Fichier MediaWiki : deleteRevision.php | |
---|---|
Emplacement : | maintenance/ |
Code source : | master • 1.42.1 • 1.41.2 • 1.39.8 |
Classes : | DeleteRevision |
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 $delarchive peut complètement enlever la révision de la base de donnée si besoin. This makes the revision disappear from the public version of the wiki. If this achieves the expected result, the deleteArchivedRevisions.php script can be used to completely remove the revision from the database.
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.
In this case the script takes care to update the page record to point to the correct revision again: It updates the page_latest field of the according page in the page
table.
It will sort the available revisions by rev_timestamp
and will set page_latest
to the revision with the newest timestamp.
This makes sure that database integrity is preserved.
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
- Extension:DeleteBatch — extension de page spéciale de ce script de maintenance.