同步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数据库 不需要备份