CardMinderのデータベースを統合してみた。その1。

最初に断っておくと、ScanSnap関連ネタである。しかもMac。この時点で離脱者が多数出そうだが、多分Windowsでも似たようにできるような気がするので、可能なら参考にして欲しい(ワガママだ)。

ScanSnapをMacBook Proで二代にわたり使ってきた。2代目のMacにはTime Capsuleからデータを復元させ、CardMinderのデータもそのまま使えるはずだった。ちなみにCardMinderは、ScanSnap付属の名刺管理アプリである。スキャンした名刺からOCR機能を使って半自動的に名簿を作ることができる。

ところが、2代目のMacでの初スキャンで気が付いた。カードが1枚しかないよ…。まさかデータロス?一瞬、慄然とした。

Cardminder_01

Time Capsuleのバックアップ対象に入っていないのか?と思って1代目Macをわざわざ起動し、CardMinderのデータを取り出そうと思って立ち上げた。すると、気付いたことがある。データのパスが、新旧で違う。冒頭の画面のように、下部分にパスが表示されている。

1代目:/Users/user/Library/Application Support/CardMinder
2代目:/Users/user/Document/CardMinder

1代目は不可視の「Library」フォルダ以下にある。しかし2代目は「書類」フォルダの下にあるのだ。Time Capsuleから復元したデータは、1代目と同じ場所にあった。しかし現在のCardMinderが使うのは2代目の場所。新規扱いとなって、カードが1枚目となったのだ。

まぁスキャンした名刺はまだ1枚だし、データファイルをコピーして、スキャンし直せばいい話。しかしそれでは面白くないといういつもの病気が出て、データを統合するにはどうしたらいいか?なんてことを考えてみた。

CardMinderには、書き出しの機能はあっても取り込みの機能はないし、同時に開けるデータは1個だけだし、クリップボードも使えないので、データ間でのやり取りはほとんど無理だと諦めた。だが、CardMinderのデータとは実はSQLiteデータベースということなので、sqlite3などのツールがあればSQLiteデータベースを操作することができる。Macではsqlite3は標準装備だ。

統合のイメージはこんな感じだ。sqlite3などのツールを使って、データAから
CSV形式などで書き出す。そしてデータBでそれからインポートする。名刺のイメージはPDF形式で保存されているので、それはコピーしてやる。理論的にはこれだけで可能だ。

Macの場合、標準的なCardMinderのデータはCardMinder DB.cxdbというファイル名だ。これはパッケージという複合ファイルになっているので、Finderで[パッケージの内容を表示]とすると、CardMinder1.sqldbファイルとimagesフォルダを見ることができる。前者がSQLiteデータベースファイルであり、後者がPDFの入ったフォルダだ。

Cardminder_02

↓パッケージの内容を表示

Cardminder_03

実際に操作するときには、パッケージファイルの中身を「書類」フォルダなどにコピーしておくと作業がやりやすいと思われる。万が一のときにも安全だ。

さて、CardMinderのデータの構造を理解したところで、明日は実際のオペレーションをやってみる。sqlite3でもよいが、GUIの便利の良いツールもありそうだ。それを使った方法を紹介したい。

コメント