Handleiding:DeleteRevision.php

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

Details

Bestand deleteRevision.php is een onderhoudsscript om een of meer revisies te verwijderen door ze te verplaatsen naar de tabel archive. Hierdoor wordt de revisie onzichtbaar in de openbare versie van de wiki. Als dit lukt dan kan met het script deleteArchivedRevisions.php de hele revisie uit de database worden verwijderd.

Om het ID van de te verwijderen revisie te bepalen, kijk naar de URL per datum in de geschiedenis van de pagina. Het ziet er uit als http://yourwiki/index.php?title=Page_Title&oldid=1234. Het ID van de revisie is het oldid, in dit voorbeeld 1234. De verwijdering gat dan als volgt:

php maintenance/deleteRevision.php 1234

Als u meerder revisies wilt verwijderen, gebruik dan een spatie als scheidingsteken:

php maintenance/deleteRevision.php 1234 5678

De huidige pagina revisie verwijderen

Het script kan ook de huidige revisie verwijderen. De vorige revisie wordt dan de actuele revisie. Het script voert de benodigde wijzigingen uit. De database integriteit blijft uiteraard bewaard.

Herstellen van het veld rev_parent_id

het script wijzigt niet de rev_parent_id field van die revisie, die er op volgt. Daardoor kunnen bijvoorbeeld grootteverschillen in de geschiedenis verkeerd worden berekend omdat MediaWiki dan toch de verwijderde revisie mee neemt. Die revisie is dan maar 0 bytes groot, en die erna voor het verschil dus veel te groot.

Dit kan nu alleen handmatig worden verbeterd door het wijzigen van het veld rev_parent_id van de revisie die volgt op de verwijderd.

Voordat dit is opgelost, kan met de volgende queries de pagina's met ontbrekende rev_parent_id worden gevonden:

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;

Er wordt dan een lijst getoond met betrokken pagina's (rev_page) en de revisie waardoor het grootteverschil verkeerd wordt bepaald (rev_id). Gebruik de waarde van de rev_page in de volgende query:

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;

Dit toont een lijst revisies voor de betreffende pagina (hier voor pagina 4711), gesorteerd op rev_id. Scroll naar beneden naar de problematische revisie en verbeter de waarde van de rev_parent_id zodat het verwijst naar de revisie ervoor (waarde rev_id van de oudere regel in het uitvoerresultaat).

De revisie voor de eerste revisie van een pagina is per definitie altijd 0.

Zie ook