截断mediawiki

时间:2009-10-21 21:12:20

标签: mysql api mediawiki wikipedia

我正在使用mediawiki API(例如http://en.wikipedia.org/w/api.php),我希望能够“截断”mysql表以重置本地安装,同时保留一些表(用户,?.. )。 什么是SQL查询?

我会说:tuncate所有表但$ {PREFIX} _user并更新$ {PREFIX} _user set user_editcount = 0?

还有其他(更安全)的建议吗?

2 个答案:

答案 0 :(得分:2)

正确的答案发布在MediaWiki邮件列表中:请参阅http://lists.wikimedia.org/pipermail/mediawiki-l/2009-October/032322.html

根据该帖子,可能会截断user_newtalkpagerevisiontextarchivepagelinkstemplatelinksimagelinkscategorylinkscategoryexternallinkslanglinks,{{ 1}},hitcounterwatchlistimageoldimagefilearchiverecentchangessearchindex,{{1} },interwikiquerycacheobjectcachelog_searchtrackbacksjobquerycache_inforedirectquerycachetwopage_restrictionsprotected_titlespage_propschange_tagstag_summary

在更新的版本中,将valid_tagl10n_cache添加到该列表,truncate message related caches

另外:如果截断,请记住删除图像文件夹中的文件 图像表。否则它们将不同步,您可能无法上传某些图片。

答案 1 :(得分:0)

获取数据库中的表列表:

echo "show tables;" | mysql -u user_name -p db_name > tables

确定要截断的表,然后创建一个sql脚本

TRUNCATE TABLE a;
TRUNCATE TABLE b;
update <prefix>user set user_editcount=0;

然后通过客户端运行它:

mysql -u user_name -p database_name < truncate-all.sql