Realm ファイルを開きます
項目一覧
Overview
クライアント アプリケーションを実行して作成したローカル Realm ファイルがある場合は、Realm Studio で開くことができます。
Realm ファイルがまだない場合は、CSV をインポートして作成するか、デモ ファイルをダウンロードしてください。
ローカル Realm ファイルを開く
Realm Studio を使用してローカル Realm ファイルを開いて確認できます。 これは、ローカル マシンでエミュレータを実行して生成された ファイル、または別のソースからのファイルである可能性があります。 一部の開発ツールでは、エミュレータの実行中に Realm ファイルを表示および編集することもできます。 このワークフローは、オブジェクトとスキーマに対する変更の高速でシンプルな反復処理をサポートします。
Realm ファイルの検索
Realm は、すべてのオブジェクトとタイプのバイナリ エンコードされたバージョンを単一の Realm ファイルに保存します。 ファイルは、Realm を開くときに定義する特定のパスにあります。
デフォルトの Realm ファイル パスを見つけるには:
// Get on-disk location of the default Realm let realm = try! Realm() print("Realm is located at:", realm.configuration.fileURL!)
// Open a realm. const realm = await Realm.open({ schema: [Car], }); // Get on-disk location of the Realm const realmFileLocation = realm.path; console.log(`Realm file is located at: ${realm.path}`);
Android エミュレータで使用されるファイルシステムは、Realm Studio を実行しているマシンから直接アクセスできません。 次のファイルにアクセスする前に、エミュレータから ファイルをダウンロードする必要があります。
まず、エミュレータで ファイルのパスを見つけます。
// Run this on the device to find the path on the emulator Realm realm = Realm.getDefaultInstance(); Log.i("Realm", realm.getPath());
次に、ADDB を使用してファイルをダウンロードします。 これはアプリの実行中に実行できます。
> adb pull <path>
また、アプリが実行されていない場合にのみ、 ADB を使用して変更されたファイルを再度アップロードすることもできます。 アプリの実行中に変更されたファイルをアップロードすると、ファイルが破損する可能性があります。
> adb push <file> <path>
var realm = Realm.GetInstance(); Console.WriteLine($"Realm is located at: {realm.Config.DatabasePath}");
// Get on-disk location of the default Realm final storagePath = Configuration.defaultStoragePath; // See value in your application print(storagePath);
config = SyncConfiguration.Builder(user, setOf(Item::class)) .initialSubscriptions { realm -> add( realm.query<Item>( "owner_id == $0", realmApp.currentUser!!.identity ), "User's Items" ) } .build() // Log on-disk location of the realm file Log.v("My Tag", "Realm Path: ${config.path}")
ローカル Realm ファイルの場所がわかったら、 Open Realm fileダイアログからそのロケーションを参照できます。
注意
隠しパスにあるファイル
MacOS では、Xcode エミュレータ ファイルのデフォルトのロケーションは ~/Library
フォルダーの下にあります。 デフォルトでは、これは非表示のディレクトリです。 Open Realm
fileダイアログからこのロケーションを参照できない場合があります。
Finder でGo to Folder
などの別の手法でファイルを表示し、そこから Realm を開きます。
CSV からの作成
ローカル Realm ファイルがない場合は、Realm Studio の CSV からローカル Realm ファイルを作成できます。
CSV から Realm を作成すると、Realm Studio は次の詳細を推測します。
CSV の名前は、Realm ファイル内のクラス名になります
CSV の最初の行は、Realm 内のクラス プロパティ名になります
各列の値は、クラスのプロパティ型を形成します。 「true」と「false」値の列はブール値のプロパティタイプになります。 整数の列は、整数プロパティ型になります。 Realm Studio がプロパティの型を決定できない場合は、string になります。
たとえば、次の形式を持つdata.csv
という名前の CSV は次のようになります。
1 device,number,flag 2 gizmo,1,TRUE 3 widget,2,FALSE
次の 3 つのプロパティを持つdata
という名前のクラスモデルになります。
device
、 型string
number
、 型int
flag
、 型bool
Realm にデータを追加する
CSV から新しい Realm ファイルを作成すると、次のメッセージが表示される場合があります。
「データのインポートに失敗しました: スキーマにクラス名(name- of ファイル.csv)がありません」
このような場合は、 OKを押します。 CSV から Realm を作成するとクラス定義が作成されたことがわかりますが、Realm にはオブジェクトはありません。 ここから、CSV からインポートして、作成したクラス定義にマップするオブジェクトを Realm に入力します。
例をダウンロード
Realm を初めて使用し、インポートする Realm ファイルまたは CSV がない場合でも、Realm Studio を試すことができます。
Realm Studio を開くと、 Download a demo Realm fileのオプションが表示されます。
Realm Studio にデモ ファイルをダウンロードするには、 リンクをクリックして、デモ データを含む Realm ファイルを保存するための名前と場所を指定できます。 Once you have downloaded the file, you can use the Open Realm file dialog to open it.
Realm ファイルの起動エラー
Realm ファイルを開こうとするとエラーが発生する場合は、Realm Studio でサポートされている Realm ファイル形式と SDK によって生成された Realm ファイル形式との間でバージョンが一致していない可能性があります。
互換性を確認するには、SDK バージョンまたは Realm Studio バージョン のリリースノートを確認してください。 。Realm Studio または Realm SDK のバージョンをアップグレードまたはダウングレードする必要がある場合があります。
これらのエラー メッセージは、次のようになります。
Realm file is currently open in another process which cannot share access with this process. All processes sharing a single file must be the same architecture.
The file is already opened by another process, with an incompatible lock file format. Try up- or downgrading Realm Studio or SDK to match their versions of Realm Core.