Xamarin,Realmデータベースの保存場所とRealmデータベースビューアー


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 は以下のようになります。

f:id:fnyablog:20180908075112p:plain

データの追加、修正、削除も問題なく行うことができます。

無料ツールなので、これだけできればひとまず OK だと思います。