namespaces - Mediawiki 自定义命名空间 ID 更改

标签 namespaces mediawiki identifier

我目前正在开发一个内部 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/

相关文章:

python - 为什么在 Python 中从类内部访问类变量需要 "self."?

python - 在函数内创建类并访问在包含函数的作用域中定义的函数

python - 通过自动化 python 使用边界框按位置查询 wikipedia/mediawiki api

html - 如何向 Mediawiki 链接添加自定义/额外属性?

java - 获取包com.google.android.gms.ads.identifier不存在,同时尝试获取google广告id

java - Spring项目突然无法加载上下文 - 没有代码更改

C++ 未定义对命名空间中函数的引用

node.js - 如何在 Windows 上安装 MediaWiki Parsoid

c++ - 错误 : #if[n]def expected an identifier

javascript - 在 MVC3 中从 Javascript 引用 HTML 元素的结构