Truncado mediawiki
Pregunta
Estoy trabajando con la API de mediawiki (por ejemplo, http://en.wikipedia.org /w/api.php ) y me gustaría poder "truncar" las tablas mysql para restablecer la instalación local mientras mantengo algunas tablas (usuarios,? ...). ¿Cuáles serían las consultas SQL?
Yo diría: tuncate todas las tablas pero $ {PREFIX} _user y actualice $ {PREFIX} _user set user_editcount = 0?
¿Alguna otra sugerencia (más segura)?
Solución
La respuesta correcta se publicó en la lista de correo de MediaWiki: consulte http://lists.wikimedia.org/pipermail/mediawiki-l/2009-October/032322.html
Según esa publicación, es probable que esté truncado user_newtalk
, page
, revision
, text
,
archive
, pagelinks
, templatelinks
, imagelinks
, categorylinks
, category
, externallinks
, langlinks
, hitcounter
, watchlist
, image
, < code> oldimage , filearchive
, recentchanges
, searchindex
, interwiki
, querycache
, objectcache
, log_search
, trackbacks
, trabajo
, querycache_info
, redireccionar
, querycachetwo
, page_restrictions
, protected_titles
, page_props
, change_tags
, tag_summary
, valid_tag ??
, l10n_cache
.
En versiones más recientes, agrega msg_resource
y msg_resource_list
a esa lista, a truncar cachés relacionados con mensajes .
También: recuerde eliminar los archivos en la carpeta de imágenes, si trunca la tabla de imágenes De lo contrario, no estarán sincronizados y es posible que tenga problemas para cargar algunas imágenes.
Otros consejos
obtenga una lista de las tablas de su base de datos:
echo "show tables;" | mysql -u user_name -p db_name > tables
determine qué tablas desea truncar, luego cree un script sql
TRUNCATE TABLE a;
TRUNCATE TABLE b;
update <prefix>user set user_editcount=0;
luego ejecútalo a través del cliente:
mysql -u user_name -p database_name < truncate-all.sql