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)?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top