标签归档: sqlite

SQLite数据库修复

最近遇到打开sqlite数据库报"database disk image is malformed"错误,网上Google找的前几个方法都没解决,后找到一个能解决的方法在此记录一下。

//生成sql

sqlite3 data.db .dump > data.sql

//手动检查sql文件,这也是Google前几个方法没提到的,造成后面生成新的数据库为0KB

用编辑器打开刚刚生成的 data.sql 看看文件的最后一行是不是

ROLLBACK; -- due to errors

是则把它删掉,并加上
COMMIT;
如果最后一行是 COMMIT; 则忽略此步骤。

//新建一个数据库,导入sql

sqlite3 new.db < data.sql

//检查

sqlite3 new.db "pragma integrity_check"


参考 https://my.oschina.net/ZntxCYL/blog/535306