我目前正在开发一个内部 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 更新页表:
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,因为这些文章已经在另一个命名空间中。
请记住在尝试之前备份您的数据库。
关于namespaces - Mediawiki 自定义命名空间 ID 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668048/