所以我安装了一个Docker Wikibase实例,并从一个WAMP64 Wikibase实例导入了一个转储。它正确地导入了,一切似乎都正常,除了我不能再创建新的项目或属性,我总是得到一个“无法创建新页面。它已经存在”。错误。
有关于如何诊断或修复的想法吗?我在想,它可能正在尝试创建一个已经存在"Q1“的项目"Q1”?任何帮助都将不胜感激!
发布于 2021-03-11 12:37:20
我想通了!
感谢这里的第4步(https://wikibase.consulting/transferring-wikibase-data-between-wikis/),我发现我是对的,维基正在尝试创建一个已经存在Q1的Q1。因此,我只需要将计数器移动到适当的数字。
幸运的是,上面的链接可以访问一个脚本,该脚本可以快速轻松地完成此操作。您可以使用以下命令将链接下载到Wikibase实例的根目录中:
curl https://gist.githubusercontent.com/JeroenDeDauw/c86a5ab7e2771301eb506b246f1af7a6/raw/rebuildWikibaseIdCounters.sql -o rebuildWikibaseIdCounters.sql并使用以下命令执行它:
php maintenance/sql.php rebuildWikibaseIdCounters.sql超级快速和无痛!
(如果由于某种原因curl不是一个选项,也可以在这里找到原始脚本:https://gist.githubusercontent.com/JeroenDeDauw/c86a5ab7e2771301eb506b246f1af7a6/raw/88cdccb1adcdf420d17a3a21296a99f153b95a21/rebuildWikibaseIdCounters.sql)
下面是该脚本的完整外观:
-- By Jeroen De Dauw / https://Professional.Wiki
-- License: GPL-2.0-or-later
SELECT * FROM /*_*/wb_id_counters;
REPLACE INTO /*_*/wb_id_counters VALUE((SELECT COALESCE(MAX(CAST(SUBSTRING(`page_title`, 2) AS UNSIGNED)), 0) FROM `page` WHERE `page_namespace` = 120), 'wikibase-item');
REPLACE INTO /*_*/wb_id_counters VALUE((SELECT COALESCE(MAX(CAST(SUBSTRING(`page_title`, 2) AS UNSIGNED)), 0) FROM `page` WHERE `page_namespace` = 122), 'wikibase-property');
SELECT * FROM /*_*/wb_id_counters;https://stackoverflow.com/questions/66573842
复制相似问题