Frage

Ich arbeite mit der Mediawiki-API (zB http://en.wikipedia.org /w/api.php ), und ich möchte in der Lage sein zu ‚truncate‘ die mySQL-Tabellen, um die lokale Installation zurückgesetzt, während einige Tabellen (Benutzer halten,? ...). Was würde die SQL-Abfragen werden?

Ich würde sagen: tuncate alle Tabellen aber $ {PREFIX} _USER und Update $ {PREFIX} _USER gesetzt user_editcount = 0

?

Jede andere (sicherer) Vorschlag?

War es hilfreich?

Lösung

Die richtige Antwort auf der MediaWiki-Mailingliste gepostet: siehe http://lists.wikimedia.org/pipermail/mediawiki-l/2009-October/032322.html

Nach diesem Post, ist es wahrscheinlich in Ordnung ist user_newtalk, page, revision, text trunkieren, archive, pagelinks, templatelinks, imagelinks, categorylinks, category, externallinks, langlinks, hitcounter, watchlist, image, oldimage, filearchive, recentchanges, searchindex, interwiki, querycache, objectcache, log_search, trackbacks, job, querycache_info, redirect, querycachetwo, page_restrictions, protected_titles, page_props, change_tags, tag_summary, valid_tag, l10n_cache.

Bei neueren Versionen, fügen msg_resource und msg_resource_list zu dieser Liste, auf truncate Nachricht verwandte Caches .

Also: Denken Sie daran, die Dateien im Bildordner zu löschen, wenn das Kürzen Tafel. Sonst werden sie nicht synchron sein, und man könnte Schwierigkeiten haben, ein paar Bilder zu.

Andere Tipps

get Liste der Tabellen aus der Datenbank:

echo "show tables;" | mysql -u user_name -p db_name > tables

bestimmen, welche Tabellen Sie trunkieren wollen, dann ein SQL-Skript erstellen

TRUNCATE TABLE a;
TRUNCATE TABLE b;
update <prefix>user set user_editcount=0;

dann durch den Client ausgeführt werden:

mysql -u user_name -p database_name < truncate-all.sql
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top