因此,我在Mediawiki设置上玩弄User:页面,我想清理我玩的数千个修订的修订历史。我了解了deleteRevision.php并在一个版本上对其进行了测试,并对它的工作方式感到满意,我在Chrome的开发人员控制台中使用了以下JavaScript,
var links = document.querySelectorAll('.mw-changeslist-date')
var output = ""
for(var i = 0; i < links.length; i++)
{
output += links[i].href+"\r\n"
}
console.log(output)
将控制台日志复制到Notepad ++中,并进行了很好的操作,并替换了常量url,并将其替换为空格,因此当我将脚本文件添加到最前面时,
php deleteRevision.php id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id
然后在腻子中运行脚本,只记得那之后我想要除1个* facepalm *以外的所有内容,并且在* facedesk *之前我没有进行数据库更新。现在,当我转到“用户:”页面时,我会得到
名为“ User:admean”的页面的版本#0不存在。
这通常是由于将过时的历史记录链接到已删除的页面引起的。可以在删除日志中找到详细信息。
我尝试运行php undelete.php User:admean
,虽然说成功了,但我遇到了同样的错误。我知道数据确实仍然存在,因为它说的是deleteRevision.php的详细信息
deleteRevision.php文件是一个维护脚本,用于通过将一个或多个修订移动到存档表来删除。
并检查表,我看到一堆记录,总数是我删除的修订版本数。虽然我不知道将数据克隆到哪里。
我也尝试了Special:Undelete,但是无论选择多少修订,我都会收到消息
取消删除失败:
修订无效或缺失。您的链接可能不正确,或者修订版本已从存档中恢复或删除。
这没有意义,因为存档表中的记录数量与我已删除的修订数量相匹配,并且有数千个
那么我该如何取消删除用php deleteRevision.php
删除的修订版
答案 0 :(得分:0)
我做了以下工作来找出我的表:(假设您像我一样使用MySQL)
$ mysqlcheck -a -A -u username -p'password' --verbose
它给了我一个表名列表,如:
wiki.archive OK
wiki.page OK
然后我用
$ mysql -u username -p'password' --verbose
它给了我一些文字和提示:
mysql>
所以我告诉它一个解释命令:
mysql> explain wiki.page ;
--------------
explain wiki.page
--------------
+--------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+----------------+
| page_id | int(8) unsigned | NO | PRI | NULL | auto_increment |
| page_namespace | int(11) | NO | MUL | NULL | |
| page_title | varchar(255) | NO | | NULL | |
| page_restrictions | tinyblob | NO | | NULL | |
| page_is_redirect | tinyint(1) unsigned | NO | MUL | 0 | |
| page_is_new | tinyint(1) unsigned | NO | | 0 | |
| page_random | double unsigned | NO | MUL | NULL | |
| page_touched | char(14) | NO | | | |
| page_latest | int(8) unsigned | NO | | NULL | |
| page_len | int(8) unsigned | NO | MUL | NULL | |
| page_content_model | varbinary(32) | YES | | NULL | |
| page_links_updated | varbinary(14) | YES | | NULL | |
| page_lang | varbinary(35) | YES | | NULL | |
+--------------------+---------------------+------+-----+---------+----------------+
13 rows in set (0.00 sec)
或:
mysql> explain wiki.revision ;
--------------
explain wiki.revision
--------------
+--------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+----------------+
| rev_id | int(8) unsigned | NO | PRI | NULL | auto_increment |
| rev_page | int(8) unsigned | NO | PRI | NULL | |
| rev_comment | varbinary(767) | NO | | NULL | |
| rev_user | int(5) unsigned | NO | MUL | 0 | |
| rev_user_text | varchar(255) | NO | MUL | | |
| rev_timestamp | char(14) | NO | MUL | | |
| rev_minor_edit | tinyint(1) unsigned | NO | | 0 | |
| rev_deleted | tinyint(1) unsigned | NO | | 0 | |
| rev_text_id | int(8) unsigned | NO | | NULL | |
| rev_parent_id | int(10) unsigned | YES | | NULL | |
| rev_len | int(10) unsigned | YES | | NULL | |
| rev_sha1 | varbinary(32) | NO | | | |
| rev_content_format | varbinary(64) | YES | | NULL | |
| rev_content_model | varbinary(32) | YES | | NULL | |
+--------------------+---------------------+------+-----+---------+----------------+
一组14行(0.01秒)
这告诉了我表的列,因此我可以在select命令中使用它们。 喜欢:
mysql> select * from vistapedia.revision where rev_id = 123456 ;
我希望这会有所帮助。