# Mediawiki Tips ## 개요 [[:tech:mediawiki|미디어위키]]를 사용하는 데에 있어 유용한 tip들의 모음. ## 백업 ### 각 페이지를 따로 내보내기 아래 내용은 최신 미디어위키(1.35 이상)에 해당한다. 그 이전 내용은 [여기](https://stackoverflow.com/questions/39503835/how-to-export-all-pages-from-mediawiki-into-individual-page-files/69308610#69308610)를 참고하라. 우선, sql에 접근하여 전체 페이지의 최신 revision을 하나의 파일로 dump한다. ```sql SELECT page_title, page_touched, old_text FROM revision,page,text,content,slots WHERE page.page_latest=revision.rev_id AND revision.rev_id=slots.slot_revision_id AND slots.slot_content_id=convert(substring(content.content_address,4),int) AND convert(substring(content.content_address,4),int)=text.old_id AND page_namespace!='6' AND page_namespace!='8' AND page_namespace!='12' INTO OUTFILE '/var/tmp/wikipages.csv' FIELDS TERMINATED BY '\n' ESCAPED BY '' LINES TERMINATED BY '\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n'; ``` 그 다음, 파이썬 등의 스크립트를 통해 이를 각각의 파일로 분리한다. ```python with open('wikipages.csv', 'r') as f: alltxt = f.read().split('\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n') for row in alltxt: one = row.split('\n') name = one[0].replace('/','-') try: del one[0] del one[0] except: continue txt = '\n'.join(one) of = open('~/wikipages/' + name + '.txt', 'w') of.write(txt) of.close() ```