すべてのMacにはsqlite3コマンドラインツールが付属しています。ターミナルに慣れた開発者にとっては、簡単なクエリを実行する信頼できる手段です。しかしCLIが効率的でなくなり、GUIの方が速くなる境界線が存在します——コツは、その境界線がどこにあるかを知ることです。作業に合わないツールを使うと、どちらの方向でも時間を無駄にします。
コマンドラインが有利な場面
sqlite3のCLIは、スクリプト化された操作において真価を発揮します。データベースから値を抽出するシェルスクリプトを書いているなら、CLIは他のコマンドに直接パイプできます。ワンライナーのクエリは高速です。sqlite3 app.db "SELECT count(*) FROM users;"は、何も起動することなく答えを返してくれます。自動化、.dumpによるバックアップ、既存のターミナルセッションでの簡単な確認には、CLIが適したツールです。
また、どこでも利用できます。インストールもダウンロードも不要です。リモートマシンにSSH接続していたり、CIパイプラインで作業していたりする場合、手元にあるのはCLIだけです——そしてスキーマを把握している対象を絞ったクエリであれば、それで十分に機能します。
CLIが力不足になる場面
探索的な作業になると、CLIは破綻します。見慣れないデータベースを開いてスキーマを理解する必要があるとき、.tablesや.schema tablenameを繰り返し実行するのは時間がかかります。幅の広いテーブルはターミナル内で折り返されます。結果をスクロールする方法はなく、出力はただ流れ去っていくだけです。データの編集には、正確なWHERE句を伴うUPDATE文を書く必要があり、タイプミスがあれば意図しない一括更新のリスクが生じます。
データアナリスト、デザイナー、QAテスターなど、開発者ではない人々にとって、CLIは事実上使い物になりません。そして開発者にとっても、いくつものテーブルをビジュアルに閲覧するのは、単純にGUIの方が速いのです。
Tome:この方程式のGUI側
Tomeは、ネイティブなmacOS向けSQLiteブラウザとしてGUIの役割を担います。CLIの代替ではなく、その補完的な存在です。スクリプト作成や簡単な確認にはCLIを、閲覧・編集・データベースをビジュアルに理解するにはTomeを使いましょう。
見慣れないスキーマを探索する
任意のデータベースを開けば、サイドバーにすべてのテーブル、ビュー、インデックス、トリガーが表示されます。テーブルをクリックして回ることでスキーマを理解し、サンプルデータをざっと確認し、リレーションシップを把握できます——コマンドを一つも入力することなく。
安全に編集する
セルをクリックして値を変更します。UPDATE文もWHERE句を間違えるリスクもありません。クリック一つで行の挿入・削除もできます。それぞれの編集がクリックしたセルだけを正確に対象とするため、意図しない一括変更のリスクはなくなります。
サポート付きでクエリを書く
SQLを書く際には、Tomeのクエリエディタがシンタックスハイライトとオートコンプリートを提供します。これは、素のCLIと本格的なデータベースIDEの中間に位置するもので、エンタープライズ向けツールのオーバーヘッドなしに、クエリを速く書くために十分なサポートを提供します。