Mediawiki 自定义命名空间 ID 更改

Mediawiki custom namespaces id change

我目前正在开发一个内部 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 更新页面 table:

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,因为这些文章已经在另一个命名空间中。

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