0

私はmediawikiAPI(例: http: //en.wikipedia.org/w/api.php)を使用しており、ローカルインストールをリセットするためにmysqlテーブルを「切り捨て」たいと考えています。テーブル(ユーザー、?...)。SQLクエリは何でしょうか?

${PREFIX}_user以外のすべてのテーブルを調整して${PREFIX}_user set user_editcount = 0を更新しますか?

他の(より安全な)提案はありますか?

4

2 に答える 2

2

正解は 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_ _ _ _ _ _trackbacksjobquerycache_inforedirectquerycachetwopage_restrictionsprotected_titlespage_propschange_tagstag_summaryvalid_tagl10n_cache

最近のバージョンでは、そのリストにmsg_resourceとを追加して、メッセージ関連のキャッシュを切り捨てますmsg_resource_list

また、画像テーブルを切り捨てる場合は、必ず画像フォルダーのファイルを削除してください。そうしないと、同期が取れなくなり、一部の画像のアップロードに問題が発生する可能性があります。

于 2010-01-10T13:46:30.143 に答える
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
于 2009-11-16T18:54:52.943 に答える