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

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

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

有帮助吗?

解决方案

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

根据该帖子,可以删除 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 job querycache_info redirect querycachetwo page_restrictions protected_titles page_props change_tags tag_summary valid_tag l10n_cache

在更新的版本中,将 msg_resource msg_resource_list 添加到该列表中,以截断与消息相关的缓存

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

其他提示

获取数据库中的表列表:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top