Усекать медиа-вики - PullRequest
       8

Усекать медиа-вики

0 голосов
/ 22 октября 2009

Я работаю с MediaWiki API (например, http://en.wikipedia.org/w/api.php), и я хотел бы иметь возможность «обрезать» таблицы mysql для сброса локальной установки при сохранении некоторых таблиц (пользователи,? ..) .). Какими будут SQL-запросы?

Я бы сказал: обрежьте все таблицы, кроме $ {PREFIX} _user и обновите $ {PREFIX} _user set user_editcount = 0?

Любое другое (более безопасное) предложение?

Ответы [ 2 ]

2 голосов
/ 10 января 2010

Правильный ответ был опубликован в списке рассылки 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, 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 в этот список, чтобы обрезать кеши, связанные с сообщениями .

Также: не забудьте удалить файлы в папке с изображениями, если таблица изображений. В противном случае они будут не синхронизированы, и у вас могут возникнуть проблемы с загрузкой некоторых изображений.

0 голосов
/ 16 ноября 2009

получить список таблиц из вашей базы данных:

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
...