あるSQLiteデータベースから別のデータベースへデータを移行していて、その結果を検証する必要があるとします。あるいはステージング環境のデータベースを本番環境と比較しているのかもしれません。または、アプリのデータベースの2つのバージョンを持っていて、何が変わったのかを見つける必要があるのかもしれません。いずれの場合も、2つのデータベースを同時に見る必要がありますが、ほとんどのSQLiteツールはこれを想定以上に難しくしています。
単一データベース向けツールとの綱渡り
ほとんどのSQLiteブラウザは、一度に1つのデータベース接続を前提に設計されています。2つのデータベースを比較するには、(そのツールが対応していれば)手動で2つの別々のアプリウィンドウを開くか、列の値を記憶しながらタブを行き来するしかありません。中には、1つのデータベースを閉じないと別のデータベースを開けないツールもあります。
ターミナルによるアプローチはさらに悪いものです。それぞれ異なるファイルに対してsqlite3を実行する2つのターミナルウィンドウを用意し、プレーンテキストの出力を並べて比較しようとすることになります。理論上は機能しますが、実際のデータ量が増えると破綻します。
この制約が存在するのは、ほとんどのデータベースツールがドキュメントベースのアプリケーションとして設計されていないからです。それらは接続マネージャーを中心に設計されています——データベースを選び、作業し、切断し、また別のものを選ぶ、という具合です。これはリモートサーバーのデータベースにとっては問題ありませんが、ローカルのSQLiteファイルにとっては不要な摩擦です。
Tome:ドキュメントベースのSQLiteビューア
Tomeは、各SQLiteデータベースをドキュメントとして扱います——TextEditがテキストファイルを、PreviewがPDFを扱うのと同じ感覚です。データベースを開けば、それ専用のウィンドウが生成されます。別のものを開けば、同様に専用のウィンドウが生成されます。それらを並べて配置することも、macOSネイティブのタブでグループ化することもできます。
データベースをビジュアルに比較
移行元と移行先のデータベースを2つのウィンドウで開きます。macOSのSplit Viewを使うか、ウィンドウをドラッグして並べて配置します。両方で同じテーブルを閲覧して、行数、列の値、スキーマの違いを比較できます。タブの切り替えも、値の暗記も必要ありません。
プロジェクトをまたいで作業
別のデータベースで開発を進めながら、参照用データベースを開いたままにしておけます。アプリの本番データベースとテスト用フィクスチャデータベースを並べて開いておくこともできます。自分のデータベースを読み込んだまま、クライアントのデータベースファイルを開くこともできます。Tomeには、同時に開けるデータベース数の制限はありません。
すべてのウィンドウで全機能を利用可能
各データベースウィンドウには、Tomeの完全なインターフェースが備わっています——テーブル、ビュー、インデックス、トリガーを表示するサイドバー、インライン編集可能なデータグリッド、シンタックスハイライトとオートコンプリート付きのSQLクエリエディタです。「主」と「副」のデータベースという概念はありません。開いているすべてのデータベースが完全に機能します。