モバイルアプリを開発していて、そのローカルデータベースを調べる必要があるとします。Realmを使っているなら、Realm Studioに手を伸ばすでしょう。SQLiteを(直接、あるいはCore Data、GRDB、Room経由で)使っているなら、まったく別のツールが必要になります。この2つの形式は根本的に異なるものであり、閲覧ツールも重なりません。それぞれが何を提供するかを理解すれば、適切なものを選べるようになります——あるいは両方が必要だと気づくかもしれません。
RealmとSQLiteは異なるニーズに応える
Realmはオブジェクトデータベースです——テーブルの行としてではなく、プロパティとリレーションシップを持つオブジェクトとしてデータを保存します。Realm Studioを使えば、これらのオブジェクトをビジュアルに閲覧し、リレーションシップをリンクとして確認し、プロパティをその場で編集できます。Realmファイル専用に作られており、それ以外のことは何もしません。
SQLiteは、単一のファイルとして保存されるリレーショナルデータベースです。行と列を持つ標準的なSQLテーブルを使用します。iOSのCore Data、AndroidのRoom、その他無数のフレームワークがストレージのバックエンドとしてSQLiteを使用しています。そのエコシステムは巨大ですが、Mac上の調査ツールは歴史的にターミナルベースか、場違いに感じられるクロスプラットフォーム移植版のどちらかでした。
プロジェクトがRealmを使っているなら、Realm Studioが唯一の現実的な選択肢です——汎用のデータベースブラウザで.realmファイルを開けるものはありません。しかしプロジェクトが何らかの形でSQLiteを使っているなら、選択肢はあります。問題は、それらの選択肢が実際にmacOS上で優れているかどうかです。
もう半分のためのネイティブなSQLiteブラウザ
Tomeは、Realm Studioと同等の焦点の絞り方と洗練度を持ちながら、SQLiteデータベース向けに作られたネイティブなmacOSブラウザです。Realm Studioが.realmファイル専用であるのと同じように、Tomeは.sqlite、.db、.sqlite3ファイル専用であり、それ以外は扱いません。
同じ「集中」の哲学
Realm StudioはPostgreSQLクライアントになろうとはしません。同様に、TomeもMySQLやMongoDBに接続しようとはしません。SQLiteだけに集中することで、インライン編集、テーブル作成、クエリのオートコンプリートといったすべての機能が、実際に扱っているフォーマットに最適化されています。
テーブルを閲覧し、その場で編集し、快適にクエリする
SQLiteデータベースを開き、サイドバーでテーブル、ビュー、インデックス、トリガーを閲覧できます。セルの値はクリックして編集できます。SQLを書かずに行の挿入・削除も可能です。クエリが必要な場合、組み込みのエディタがスキーマに対するシンタックスハイライトとオートコンプリートを提供します。
両方が必要なとき
あるコンポーネントにはRealmを、別のコンポーネントにはSQLiteを使うプロジェクトもあります。Realm StudioとTomeを並べて使いましょう——それぞれが自分の形式をネイティブに扱い、どちらも設計されていない形式をサポートしようとしてリソースを無駄にすることはありません。