解決digiKam啟動時出現的資料庫錯誤

 上個週末跑了趟COSCUP,一個台灣的開放原始碼愛好者的研討會。這次終於有了筆電可以在會中使用,除了上irc聊天,就是整理照片。我愛用的照片管理軟體是digiKam,有標記標記、修改RAW檔等功能。在整個議程中,我幾乎沒有將電腦關機,頂多是進入待命。而digiKam則是獨立開在KDE Plasma的一個 Activity中。

然而經過以上的廢話後,我重新啟動電腦並啟動digiKam,卻發生了以下的錯誤。進入digiKam之後,也看不到收藏庫內的所有照片。

今回の週末、台湾のオープンソースカンファレンス「COSCUP」に参加した。パソコンを持っていったから、IRCでチャットしたり、写真を管理したりした。もっと詳しい情報を伝えたいが、これは今回の議題ではない。(笑)

digiKamは自分の愛用の写真管理ソフトだ。しかし、昨夜このソフトを開くとき、エラーに遭遇した。digiKamに入っても、写真は一枚も表示しなかった。エラーメッセージは下記のようだった。
English:
The schema updating process from version 4 to 5 failed, caused by an error that we did not expect. You can try to discard your old database and start with an empty one. (In this case, please move the database files "digikam3.db" and "digikam4.db" from the directory "/media/sda5/photo"). More probably you will want to report this error to the digikam-devel@kde.org mailing list. As well, please have a look at what digiKam prints on the console.
中文:
由於一個意外的錯誤使綱要版本 4 更新為版本 5 處理失敗。您可以試著丟棄舊的資料庫並以空白資料庫啟動。(在這種情況下,請從資料夾 "/media/sda5/photo" 移動資料庫檔案 "digikam3.db" 和 "digikam4.db")。很可能您會想要回報這個錯誤到 digikam-devel@kde.org 郵件論壇。也請看看 digiKam 在終端機上輸出什麼訊息。
日本語:
予期しないエラーが発生したため、スキーマをバージョン 4 から 5 に更新できませんでした。古いデータベースを破棄して空のデータベースでやり直してみてください (フォルダ ‘/media/sda5/photo’ からデータベースファイル ‘digikam3.db’ と ‘digikam4.db’ を取り除いてください)。このエラーを報告していただく場合は、digiKam のメーリングリスト (digikam-devel@kde.org) までお願いします。digiKam のコンソールへの出力も確認してください。


讀了錯誤訊息之後,大概可以了解到問題出自於照片的資料庫。其中一個解決方法是將舊有的資料庫刪除或更名,再以新的資料庫啟動程式。然而我的照片比較多,重建資料庫需要花上一段比較長的時間。後來Google到了一篇文章,讓我成功在不重建資料庫的前提下,成功修好digiKam。

1. 備份資料庫
由於底下的步驟將會修改資料庫的數值,為了避免發生意外,建議您先進行備份。如果您不知道資料庫的位置,別驚慌。其實檔案位置已經出現在錯誤訊息中。例如我的是在/media/sda5/photo中,一個名為digikam4.db的檔案。

2. 安裝SQLite Database Browser
digiKam預設的檔案資料庫格式是SQLite,我們可以用「SQLite Database browser」進行修改。這個程式是個開放原始碼的程式,可以由網站下載各系統的版本。如果您是使用Ubuntu或Debian,可以直接透過以下指令安裝。當然,Ubuntu軟體中心內也可以搜尋到。
sudo apt-get install sqlitebrowser
3.修改數值
啟動SQLite Database Browser,並開啟資料庫檔案。之後選擇「Browse Data」→Table:「Settings」。在最底下有個「DBVersion」,將其值(value)由0改為5,再選擇「Apply Changes」。儲存之後即可離開。
之後進入digiKam,應該就可以發現收藏庫內的資料都回來了。

資料來源以及詳細的資訊,可以參考這篇文章:
Digikam does not start ? Do not drop your database (yet) ! It may be fixed. « Chroniques d’un éco-libriste

---------------------------------------------
では、これから日本語で紹介しよう

エラーメッセージを読んだら、データベースが壊れるようだと知っていた。これによって、データベースを他のフォルダに移動して、新規のデータベースでdigiKamを起動すれば、解決できるかも知れない。しかし、私の場合は写真がたくさんある。データベースを再構築すると、時間をかかるので大変だと思っている。Googleで検索すると、データベースを再構築せずに解決できる方法を見つけた。

1.データベースをバックアップする
データベースを壊させて、回復できないのを防ぐようにバックアップが必要だと思う。ファイルの位置を知らなくても大丈夫、エラーメッセージに書いてあるから。例えば、私の場合は「/media/sda5/photo」に置いた「digikam4.db」というファイルだ。

2.SQLite Database Browseをインストール
digiKamの標準設定ではデータベースのタイプをSQLiteに指定した。今回は「SQLite Database browser」でデータを書き換える。このソフトはオープンソースで、各OS向けのビルドは公式サイトでダウンロードできる

Ubuntu/Debianのユーザーなら、以下のコマンドでお手軽にインストールできるよ。もちろん、Ubuntuソフトウェアセンターでもインストールできる。
sudo apt-get install sqlitebrowser
3.値を書き換える
SQLite Database Browserを起動し、データベースを開いてください。それから、「Browse Data」→Table:「Settings」を選ぶ。次は設定画面の下にある「DBVersion」の値(Value)を0から5に書き換えて、「Apply Changes」をクリックする。そして、セーブして、ウィンドウを閉じる。完成!
以上の操作をしたら、digiKamは元の状態に戻って、コレクションも見えるようになると思う。

同じエラーに会ったら、ぜひ試してください。

詳しい情報はこの文をご覧してください:
Digikam does not start ? Do not drop your database (yet) ! It may be fixed. « Chroniques d’un éco-libriste

留言