使用sqlite3修复Anki数据库 不需要备份

同步anki时数据库出现错误,但又不想用以前的备份。按照官方英文文档说明下载sqlite3,居然真的修好了,特此记录。

导读

Anki官方推荐的方法:在anki中直接恢复备份。缺点是进度陈旧,损失之后添加的新卡片。

Anki提供的第二种方法,可以保证进度不会丢失:

需要工具:http://www.sqlite.org/sqlite-3_6_23.zip

在Windows环境下载上述文件,将压缩包中的sqlite3.exe复制到桌面上,再将Anki的数据文件collection.anki2(Ankidroid在手机的Anki文件夹中)复制到桌面。

打开命令提示符(可按下 Win + S 后输入名称搜索打开),输入cd C:\Users\Administrator\Desktop即 cd + 你的桌面路径 ,然后输入sqlite3 collection.anki2 .dump > dump.txt。编辑生成的dump.txt文件,找到最后一行,如果有rollback;,修改为commit;

然后再次在命令提示符中输入type dump.txt | sqlite3 temp.file,将得到的temp.file重命名为collection.anki2,复制回文件原位置。

一般同步出错是因为多端修改了数据。比如我的移动端修改了牌组名称,PC端向这个牌组添加了新卡片,导致数据出现错误。因此在进行非常规操作前务必先进行同步。

参见:https://apps.ankiweb.net/docs/manual.html#corrupt-collections

欢迎来到Yari的网站:yar2001 » 使用sqlite3修复Anki数据库 不需要备份