문제

저는 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, 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