【问题标题】:Mediawiki custom namespaces id changeMediawiki 自定义命名空间 ID 更改
【发布时间】:2015-08-20 11:50:53
【问题描述】:

我目前正在开发一个内部 Mediawiki,我们正在使用许多自定义书面扩展。 因为我们不知道更好,所以为我们自己的扩展和文章定义了自定义命名空间,其 id 小于 3000

例如:

define('NS_bla', 1100);
$wgExtraNamespaces[NS_bla] = "bla";
define('NS_bla_TALK', 1101);
$wgExtraNamespaces[NS_bla_TALK] = "bla Talk";

我们用几个不同的扩展来做到这一点。现在我们在官方文档 (http://www.mediawiki.org/wiki/Extension_default_namespaces) 上看到自定义命名空间应该使用 3000+ 的 id。

因此我的问题是:我们如何在生产实例上轻松更改命名空间的 ID,而不会弄乱我们当前的数据集?我们如何解决这个问题?我在 Mediawiki 文档中找不到任何信息。

提前非常感谢和

来自德国的干杯,

法比安

【问题讨论】:

  • 命名空间 ID 是否导致冲突?或者您是否正在尝试发布您的扩展程序供其他人使用,并且只是想确保它符合指南?
  • 您好 jlerney,非常感谢您的快速回答! ID 还没有引起任何冲突——如果是这样,我们只能手动更改。我们愿意遵循 mediawiki 指南。这是目前唯一的目的;)

标签: namespaces mediawiki identifier


【解决方案1】:

要回答这个问题,您需要使用新的命名空间 ID 更新页表:

http://www.mediawiki.org/wiki/Manual:Using_custom_namespaces#Use_a_database_query

为了适合你的场合,应该是:

UPDATE page 
SET page_namespace = 3000
WHERE page_namespace = 1100

您不必替换 page_title,因为这些文章已经在另一个命名空间中。

请记住在尝试之前备份您的数据库。

【讨论】:

  • 有几个字段存储命名空间编号并且需要更新:archive.ar_namespacewatchlist.wl_namespacelogging.log_namespace 以及您的扩展添加的任何内容。还有链接表(pagelinkstemplatelinksimagelinkscategorylinksiwlinks)和recentchanges,尽管这些可以重新生成。
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多