Tronquer mediawiki
Question
Je travaille avec l'API mediawiki (par exemple, http://fr.wikipedia.org /w/api.php ) et je voudrais pouvoir "tronquer" les tables mysql afin de réinitialiser l’installation locale tout en conservant certaines tables (utilisateurs,? ...). Quelles seraient les requêtes SQL?
Je dirais: tronquez toutes les tables mais $ {PREFIX} _user et mettez à jour $ {PREFIX} _user set user_editcount = 0?
Une autre suggestion (plus sûre)?
La solution
La réponse correcte a été affichée sur la liste de diffusion de MediaWiki: voir http://lists.wikimedia.org/pipermail/mediawiki-l/2009-October/032322.html
Selon ce message, il est probablement correct de tronquer utilisateur_newtalk
, page
, révision
, texte
,
archive
, liens de page
, liens de modèle
, imagelinks
, liens de catégorie
, catégorie
, externallinks
, langlinks
, hitcounter
, liste de suivi
, image
, < code> oldimage , filearchive
, des modifications récentes
, index de recherche
, interwiki
, querycache
, objectcache
, log_search
, rétroliens
, travail
, querycache_info
, redirection
, querycachetwo
, restrictions de page
, titres protégés> /
,
protections de page
, étiquettes de modification
, résumé_tiquette
, étiquette_valide
, l10n_cache
.
Sur les versions plus récentes, ajoutez msg_resource
et msg_resource_list
à cette liste, à tronquer les caches liés aux messages .
Aussi: n'oubliez pas de supprimer les fichiers du dossier de l'image, si vous tronquez le tableau d'image. Sinon, ils seront désynchronisés et vous risquez de ne pas pouvoir télécharger certaines images.
Autres conseils
obtenir la liste des tables de votre base de données:
echo "show tables;" | mysql -u user_name -p db_name > tables
déterminez les tables que vous souhaitez tronquer, puis créez un script SQL
TRUNCATE TABLE a;
TRUNCATE TABLE b;
update <prefix>user set user_editcount=0;
puis exécutez-le via le client:
mysql -u user_name -p database_name < truncate-all.sql