破損したデータベースを修復する方法 (sqlite3)

sqlite3 で以下のエラーが出る場合は,データベースを保存しているファイルが破損しています

Error: database disk image is malformed

ファイル破損の有無は以下のコマンドで確認できます ( mydata.db がデータベースのファイル名です)

$ sqlite3 mydata.db "PRAGMA integrity_check"
Error: database disk image is malformed

この場合は以下のコマンドを実行するとファイルが修復できます

sqlite3 mydata.db   ".recover" | sqlite3  new.db

これで復旧できたデータが ,新しいデータベースのファイル new.db に保存されます