Docs Menu
Docs Home
/ /
Atlas Device SDK
/

Realm ファイルを開きます

項目一覧

  • Overview
  • ローカル Realm ファイルを開く
  • Realm ファイルの検索
  • CSV からの作成
  • [ CSV から Realm を作成 ] オプションを参照してください
  • CSV を開きます
  • インポートしたデータを保存する場所を選択する
  • Realm にデータを追加する
  • 例をダウンロード
  • Realm ファイルの起動エラー

クライアント アプリケーションを実行して作成したローカル Realm ファイルがある場合は、Realm Studio で開くことができます。

Realm ファイルがまだない場合は、CSV をインポートして作成するか、デモ ファイルをダウンロードしてください。

Realm Studio を使用してローカル 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 を開きます。

ローカル Realm ファイルがない場合は、Realm Studio の CSV からローカル Realm ファイルを作成できます。

CSV から Realm を作成すると、Realm Studio は次の詳細を推測します。

  • CSV の名前は、Realm ファイル内のクラス名になります

  • CSV の最初の行は、Realm 内のクラス プロパティ名になります

  • 各列の値は、クラスのプロパティ型を形成します。 「true」と「false」値の列はブール値のプロパティタイプになります。 整数の列は、整数プロパティ型になります。 Realm Studio がプロパティの型を決定できない場合は、string になります。

たとえば、次の形式を持つdata.csvという名前の CSV は次のようになります。

1device,number,flag
2gizmo,1,TRUE
3widget,2,FALSE

次の 3 つのプロパティを持つdataという名前のクラスモデルになります。

  • device、 型 string

  • number、 型 int

  • flag、 型 bool

1

Realm Studioで、File > Create Realm from > CSV にGoします。

2

CSV ファイルの場所を確認し、選択します。

Open ボタンを押してください。

3

CSV から作成する Realm ファイルの名前を入力します。

これを保存するロケーションを参照します。

Save ボタンを押してください。

4

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 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.

戻る

Device Sync によるデータの表示