Xamarin で Realm を使ってみて生データを見たいなと思ったのですが、Realm データベースがどこに保存されているのか分からない問題が起きました。なお、環境は Mac になります。
答えは Realm データベースの情報をデバッグログに出力すればいいのですが、出力されるパスが異常に深い!
/Users/xxxxx/Library/Developer/CoreSimulator/Devices/275D9BC9-E25A-4541-BACC-8B188A7618A8/data/Containers/Data/Application/55EA745E-9B2F-42F4-A02B-4F6FEBD093D2/Documents/default.realm
これはさすがに自分では探せませんね。
なので、データ保存時にデバッグログにデータベースの保存先を出力するようにします(抜粋)。
using System; using Realms; using System.Diagnostics; using (var realm = Realm.GetInstance()) { realm.Write(() => { realm.Add(new Person { Name = "山田太郎", Age = 23 }); //Realmデータベースのパスを出力 Debug.WriteLine(realm.Config.DatabasePath); }); }
これで先程のパスがデバッグログに出力されます。
さて、Realm データベースの場所が分かってもツールがないとデータベースの中身を見ることはできません。
Mac では、Realm Browser というナイスなツールがあるのでこれを利用します。
Finder のメニューから、 移動 > フォルダへ移動 で表示されるプロンプトにデータベースのフォルダパスを入れて移動すると、Realm データベースのファイルが見つかります。
これをダブルクリックすると、Realm Browser が起動します。
起動した Realm Browser は以下のようになります。
データの追加、修正、削除も問題なく行うことができます。
無料ツールなので、これだけできればひとまず OK だと思います。