MediaWiki с SQLite: где хранятся страницы?


1

Где mediawiki-1.20.2с SQLite 3.7.13магазином содержание страниц? Я хочу сбросить код уценки. Я хочу получить все страницы, как показано, когда нажата кнопка «Изменить».

maintenance/sqlite.php --backup-toСкрипт не работает.

SELECT page_title FROM page; запрашивает только заголовки страниц.

Вот эти отношения:

 sqlite> .tables
 archive               module_deps           searchindex_segdir  
 category              msg_resource          searchindex_segments
 categorylinks         msg_resource_links    site_identifiers    
 change_tag            objectcache           site_stats          
 external_user         oldimage              sites               
 externallinks         page                  tag_summary         
 filearchive           page_props            templatelinks       
 hitcounter            page_restrictions     text                
 image                 pagelinks             transcache          
 imagelinks            protected_titles      updatelog           
 interwiki             querycache            uploadstash         
 ipblocks              querycache_info       user                
 iwlinks               querycachetwo         user_former_groups  
 job                   recentchanges         user_groups         
 l10n_cache            redirect              user_newtalk        
 langlinks             revision              user_properties     
 log_search            searchindex           valid_tag           
 logging               searchindex_content   watchlist           
 sqlite> 

Я не выполнял никаких операторов DDL или DML, кроме операций выбора.


1
Да, SELECT page_title FROM page;вернет только page_titleстолбец из pagesтаблицы. Что происходит, когда ты SELECT * FROM page;? В качестве альтернативы, запустите, .SCHEMA pageчтобы увидеть структуру таблицы.
Майк Фицпатрик,

С точки зрения читателя, не являющегося администратором базы данных, SELECT page_title FROM page;возвращает список заголовков страниц и идентификаторов. Так сказать, без содержания.
user2964971

Ответы:


1

Текст страниц хранится в в textтаблице . Чтобы попасть туда page, вам нужно пройти revision. Запрос SQL может выглядеть примерно так:

SELECT page_title, old_text
FROM page
JOIN revision ON page_latest = rev_id
JOIN text ON rev_text_id = old_id

Во- первых, я pepare дамп: sqlite> .mode csv- sqlite> .header on- sqlite> .out File.csv.txt. Затем я выполнил запрос как дано. Теперь у меня есть текстовый файл, содержащий все имена страниц, за которыми следует содержимое страницы, в неизмененной уценке. Определенно читабельный.
user2964971
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.