破損したSQLiteのファイルを修復する

  • 9
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

  • Adobe AIR製のWindowsアプリのデータ保存にSQLiteを使用していたら、データ容量が異様に肥大化している事案が発生(通常の10倍くらいに!)
  • SQLite Browser( http://sqlitebrowser.org/ )で開くとデータが表示できない。
  • PupSQLite( http://www.vector.co.jp/soft/winnt/business/se449564.html )で開くといくつかのテーブルで「database disk image is malformed」エラー
  • どうやら、データが破損しているらしい!

データ修復

SQLite本家からコマンドラインツールを取得
http://www.sqlite.org/download.html
いろいろあるが、Windowsなら「sqlite-tools-win32-x86-3140200.zip」をダウンロードする。
※記事作成時点の最新ファイル名なので、そのときの最新版を入手してください。

ファイルを展開し、コマンドプロンプト(またはPowerShell)で該当フォルダ―までたどり着き、以下コマンドを実行

sqlite3 mydata.db .dump | sqlite3 mydata_new.db

上記で 無事データ修復できました。
必ず修復できるわけではないと思いますが、どなたかの参考となれば。

参考

http://q.hatena.ne.jp/1258638989
http://taichino.com/engineer-life/database/4123