怎样在本地修复Zotero数据库文件

by Harrison on 3月 17, 2010

桑葚很久前曾介绍过Zotero,一款强大的文献管理工具,也是firefox浏览器的扩展:http://gezhi.org/node/799

昨天Zotero升级,重启firefox后报错,说数据库文件已经损坏,无法升级。推荐方式是上传Zotero目录里的数据库文件zotero.sqlite到服务器上来修复:
https://api.zotero.org/utils/dbfix/

可在网速不慢的情况下,传了四五次都没成功。以前整理的那些文献目录,可不能就这么算了。于是改用“高级或曰玩火(advanced or adventurous)”的办法,下载了工具自己修复。

工具下载去:
http://www.sqlite.org/download.html
找到“Precompiled Binaries For Windows”这行粗体大字下边第一个,“sqlite-3_6_23.zip”下载解压就是。

然后还要在命令行里完成修复。找了半天没见中文的说明(所以今天才要写一写,兴许能方便碰到同样问题的人),也没见图形界面的替代软件,只好回头再来啃英文说明。那份说明又长又麻烦,咱不搞那一套。咱就把自己试验成功的这个例子贴上,有需要的照着粘代码就行了。

先把数据库文件zotero.sqlite,和刚才解压出来的sqlite3.exe,放到同一个文件夹中,比如D:\fix\
数据库文件一定要预先备份,这是出于对安全性的考虑(虽然其实我当时也忘了)。

然后打开命令提示符那黑乎乎的界面,开始输代码吧:
cd /d D:\fix\
sqlite3 zotero.sqlite
.dump
#这里会出现大量字符刷屏,耐心等上一两分钟,等它“倾诉”完。
.out zotero-dump.sql
.dump
.exit
sqlite3 zotero.repaired.sqlite "PRAGMA auto_vacuum=1"
#这里英文版指南中,用的是单引号(半角),但我在Win7的命令行下试验时却总报错。改成双引号(半角)以后解决了。
sqlite3 zotero.repaired.sqlite < zotero-dump.sql


时在d:\fix\目录里得到了一个zotero.repaired.sqlite文件,可能比原先的文件略小,即为修复后的数据库文件了。把这个文件复制到Zotero文件夹中,先把原先的zotero.sqlite剪切走备份好,再把这个文件重命名为zotero.sqlite,应该就可以了。打开firefox,让Zotero继续完成升级吧。

(英文说明原文见:http://forums.zotero.org/discussion/2607/;以上方式仅限Windows系统,在Linux或OS X下操作可能相对简单,参考https://api.zotero.org/utils/dbfix/manual

9 comments

前辈您好!
我刚才也遇到了zotero数据库损坏的问题,在网上找到了您这这篇文章
看到您说“兴许能方便碰到同样问题的人”,我真是太感动了!
这篇文章真的太有用了,虽然按照您的步骤没有解决我的问题,但是却给我提供了新的思路,最终修复了我的数据库!
感谢您的付出!

by rainbowfeng on 2022/03/17 at 11:13. 回复 #

Leave your comment

Required.

Required. Not published.

If you have one.