sqlite 的数据库文件结构挺,但用在 SVN 里却能一些看似头疼的清理问题,像svn cleanup失败啊、锁定异常啊,经常跟它有关。你要是遇到 SVN 突然不听话,不妨看看是不是 SQLite 数据库出毛病了。

SVN 的本地数据就是靠 SQLite 保存的。里面记录了文件状态、改动历史,甚至工作副本的各种细节。如果你在用 SVN 时遇到“无法执行 cleanup”的提示,基本可以怀疑 SQLite 数据库出错了,尤其是.db文件受损。

碰到这种事,最直接的办法就是打开 SQLite 命令行,跑一遍VACUUM。这个命令能整理数据库、修复轻微损坏,速度也快。,前提是你还能连上数据库。

要是连连接都出问题,那就得靠一些图形工具了,比如DB Browser for SQLite。界面操作简单,支持导入导出、查看结构,适合不想手写 SQL 的你。

哦对了,REPAIR TABLE这种语句在 SQLite 是用不了的,不像 MySQL 那样有现成指令。严重损坏时建议你直接从备份恢复,毕竟文件型数据库,没得多线程容错。

如果你习惯用脚本,那sqlite3模块在 Python 里也蛮好用,查错方便,还能做事务回滚。平时注意定期备份,别多个程序同时改同一个.db文件,能省下不少麻烦。

下面这些文章也蛮实用,遇到问题可以看看:

如果你经常用 SVN 工作副本开发,建议你熟悉一下 SQLite 的基本命令,配套工具也备一份,说不定哪天真能救场。