メディアウィキを切り捨てる
質問
mediawiki APIを使用しています(例: http://en.wikipedia.org /w/api.php )そして、いくつかのテーブル(ユーザー、?...)を保持しながらローカルインストールをリセットするためにmysqlテーブルを「切り捨て」できるようにしたいと思います。 SQLクエリはどうなりますか?
私は言うでしょう:$ {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
、リダイレクト
、 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