Tronca mediawiki
Domanda
Sto lavorando con l'API mediawiki (ad es. http://en.wikipedia.org /w/api.php ) e vorrei essere in grado di "troncare" le tabelle mysql per ripristinare l'installazione locale mantenendo alcune tabelle (utenti,? ...). Quali sarebbero le query SQL?
Direi: tuncare tutte le tabelle tranne $ {PREFIX} _user e aggiornare $ {PREFIX} _user set user_editcount = 0?
Qualche altro suggerimento (più sicuro)?
Soluzione
La risposta corretta è stata pubblicata sulla mailing list di MediaWiki: vedi http://lists.wikimedia.org/pipermail/mediawiki-l/2009-October/032322.html
Secondo quel post, probabilmente è ok troncare user_newtalk
, page
, revision
, text
,
archive
, pagelink
, templatelinks
, imagelink
, categorylink
, categoria
, link esterni
, langlink
, hitcounter
, watchlist
, image
, < code> oldimage , filearchive
, recentchanges
, searchindex
, interwiki
, querycache
, objectcache
, log_search
, trackbacks
, job
, querycache_info
, reindirizzamento
, querycachetwo
, page_rest restrizioni
, protected_titles
, page_props
, change_tags
, tag_summary
, valid_tag ??
, l10n_cache
.
Nelle versioni più recenti, aggiungi msg_resource
e msg_resource_list
a tale elenco, a tronca le cache relative ai messaggi .
Inoltre: ricordarsi di eliminare i file nella cartella dell'immagine, se si tronca il file tabella di immagini. Altrimenti non saranno sincronizzati e potresti avere difficoltà a caricare alcune immagini.
Altri suggerimenti
ottieni l'elenco delle tabelle dal tuo database:
echo "show tables;" | mysql -u user_name -p db_name > tables
determina quali tabelle vuoi troncare, quindi crea uno script sql
TRUNCATE TABLE a;
TRUNCATE TABLE b;
update <prefix>user set user_editcount=0;
quindi eseguilo attraverso il client:
mysql -u user_name -p database_name < truncate-all.sql