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

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top