Ankiデータが、何らかの原因で不幸にして破損した場合の修復方法について紹介します。起動後に大量のデータ更新を行ったりして、自動バックアップからの復元では対応できない場合の手順を説明します。

注意: この作業はデスクトップPC上でのみ作業が可能です。また、コマンドラインツールの操作が必要となります。なお、モバイル機器での作業は対象外です。

メニューバーから[ツール]>[データベースをチェック]を実行すると、データが破損していないか確認できます。

データの破損が発生した場合、一番簡単な復旧方法は最新の自動バックアップファイルから復旧することです。

Ankiは、アプリケーション終了時、ユーザープロファイル変更時に自動バックアップを行います。まずは、自動バックアップファイルの復元を試みて、問題発生の直前の状況と比較してみましょう。

この記事で紹介するデータ修復の手順は、最新の自動バックアップ以降に、大量のデータの読み込みを行った場合など、最新のデータと自動バックアップファイルの間に差が大きい場合に有効です。

Ankiは、プロファイル毎にコレクションファイルを作成します。データの破損が発生しているのはどのプロファイルか改めて確認してください。

  1. プロファイルフォルダーの中にある collection.anki2 のバックアップを取ってください。 このファイルが、修復対象のファイルです。 なお、プロファイルフォルダーは、Ankiフォルダーの中に、プロファイル名を使って作成しています。
  2. つぎに sqlite3 がインストール済みか確認してください。
    • Mac OS Xの場合は、既定でインストール済みです。

    • Linuxの場合は、パッケージ管理システムを使ってインストール済みか確かめることができます。

    • Windowsの場合は、SQLite サイトからWindows用の最新のコマンドラインシェル(command-line shell)をダウンロードします。 2013/10/16時点で、最新版はsqlite-shell-win32-x86-3080002.zipです。なお、Ankiユーザーマニュアルでは、sqlite-3_6_23.zipを指定しています。

SQLite3のコマンドラインシェルを使って、コレクションのダンプファイルを作ります。作業に使用するプラットフォームによって手順が異なりますのでご注意ください。

Mac OS X または Linuxの場合

ターミナルを開き、Ankiフォルダーの中のプロファイルフォルダーに移動して次のコマンドを実行します。

sqlite3 collection.anki2 .dump > dump.txt

生成したファイル dump.txt をテキストエディタで開きます。 最終行に "rollback;" という記述があれば、"commit;" に変更します。

さらに、ターミナルで次のコマンドを実行します。

cat dump.txt | sqlite3 temp.file

注意: コレクションファイルを上書きせず、必ず temp.file とテンポラリーファイルを指定してください。

Windowsの場合

  1. ダウンロードしたSqliteファイルを解凍すると、sqlite3.exe が生成します。これをAnkiフォルダーの中のプロファイルフォルダーにコピーします。
  2. コマンドプロンプトを起動して次のコマンドを実行します。 コマンドプロンプトを開くには、[スタート]ボタンを押し、[プログラムとファイルの検索]フィールドに cmd と入力して、cmd.exe を実行します。
sqlite3 collection.anki2 .dump > dump.txt

生成したファイル dump.txt をテキストエディタで開きます。 最終行に "rollback;" という記述があれば、"commit;" に変更します。

さらに、ターミナルで次のコマンドを実行します。

cat dump.txt | sqlite3 temp.file

注意: コレクションファイルを上書きせず、必ず temp.file とテンポラリーファイルを指定してください。

  1. ダンプファイル作成時にエラーメッセージを表示しないこと、ダンプファイルが空でないことを確認します。
  2. コレクションファイル collection.anki2 を別の名前に変更し、ダンプファイル temp.filecollection.anki2 に変更します。
  3. Ankiを起動し、ツールバーから[ツール]>[データベースをチェック]を実行します。

問題がなければ修復作業は成功です。

2013/10/16: Anki 2.0.14のリリースと同時に行われたマニュアルの変更に基づいて、内容を更新しました。

2013/7/6: 初出