![MediaWiki 与 SQLite:页面存储在哪里?](https://linux22.com/image/1426939/MediaWiki%20%E4%B8%8E%20SQLite%EF%BC%9A%E9%A1%B5%E9%9D%A2%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
mediawiki-1.20.2
页面内容存储在哪里SQLite 3.7.13
?我想转储 markdown 代码。我想获取点击“编辑”按钮时显示的所有页面。
该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
答案2
要将 Mediawiki 页面导出为纯文本,查询svick 的回答在 1.31 版本之前运行良好。
从那时起,随着多内容修订,结构已经改变,可以在字段中找到页面当前文本的content_address
idcontent
桌子。
这是我现在使用的,带有 Mediawiki 1.35 和 PostgreSQL 数据库:
SELECT page_title, page_touched, old_text
FROM page
JOIN slots ON page.page_latest = slots.slot_revision_id
JOIN "content" ON slots.slot_content_id = content.content_id
JOIN pagecontent ON old_id = REGEXP_REPLACE(content.content_address, '^\D*','')::INTEGER
WHERE page_namespace = 0
对于 SQLite 或 MySQL,该表pagecontent
名为text
,并且该regexp_replace
函数可能需要进行调整。