Realm ファイル内のオブジェクトの変更
項目一覧
Overview
Realm Studio では、Realm ファイル内のオブジェクトを表示および変更することができます。 ここでは、次の作業が可能です。
CSV からのデータのインポート
新しいオブジェクトの作成
既存のオブジェクトの変更と削除
その後、データを JSON または Realm ファイルとして保存し、クライアント アプリまたは本番データベースにインポートできます。
CSV からのインポート
注意
データのインポート時に新しい クラスを使用する場合は、インポートを開始する前に クラスを作成する必要があります。
オブジェクトの作成
オブジェクト関係を考慮する
新しいオブジェクトを作成するときは、オブジェクト間の関係を考慮してください。 たとえば、ToDo アプリにはカテゴリとタスクがあります。 カテゴリはタスクに対して対多の関係があります。 1 つのカテゴリには多くのタスクがある場合があります。 タスクは カテゴリと逆の関係にあります。
Realm では、対多の関係は 2 つのオブジェクトをリンクする list
プロパティとして表されます。 ToDo アプリの例では、 Category
クラスにはlist
プロパティがあり、その値は関連するすべてのTask
オブジェクトです。
Realm Studio UI で、 Category
クラスを選択します。 タスクを追加するカテゴリの[list-of-task]
プロパティをクリックします(たとえば、「作業」など)。
作業 と逆の関係を持つすべてのタスク オブジェクトが表示されます。 ワーク リスト内から新しいタスク オブジェクトを作成すると、Realm Studio は ワーク 親カテゴリとの逆関係を設定します。
ここから、「PR 1013を確認する 」という新しいタスク オブジェクトを作成できます。 新しいタスクは、逆の関係で「作業」カテゴリにリンクされます。
Task
クラスを直接選択すると、新しいタスク オブジェクトを作成できます。 ただし、そのタスク オブジェクトは親カテゴリと逆の関係にはありません。 その後、孤立したタスク オブジェクトを、それが属するカテゴリに手動で追加する必要があり 。
オブジェクトを作成する
新しいオブジェクト を作成します
新しいオブジェクトを作成する場所を決定したら、次の 2 つの方法でこれを行えます。
アプリの右上隅にあるCreate {Class name} ] ボタンをクリックします
メインウィンドウの任意の場所で右クリック(またはコントロールクリック)してコンテキスト メニューを表示し、 を選択します Create new {Class name}
どちらのオプションも、オブジェクトのプロパティを設定できるダイアログを開きます。 必要なプロパティを指定したら、 Createボタンを押します。
リンク プロパティを使用して親オブジェクトに関連付けられていない孤立したオブジェクトを作成する場合は、リンクされたオブジェクトに手動で追加する必要があります。 「オブジェクトの変更 」を参照してください。
オブジェクトの変更
Realm Studio で Realm オブジェクトを変更するには、次の方法があります。
フィールド値の変更
オブジェクト関係の変更
フィールド値の変更
オブジェクトのフィールド値は手動で変更できます。
オブジェクトの フィールドをクリックします
別の値を入力
Realm Studio では、受け入れ可能なブール値オプションのリストを提供するか、日付を有効な日時に自動的に変換するなど、簡単なタイプ検証が提供されUse "true", "false", "0", or "1" 。 ただし、この検証により予期しない動作が発生する可能性があります。 たとえば、 int
フィールドに「 123 aBC」を入力すると、ユーザー フィードバックやエラーは発生せず、数字以外の文字が破棄されます。 したがって、フィールド値に入力するデータが正しいタイプであることを確認する必要があります。
オブジェクトの関係の変更
Realm Studio を使用して、オブジェクトと他のオブジェクトの関係を変更することができます。
新しいオブジェクト関係を追加するには:
関係を定義するプロパティをクリックします
メインペインの任意の場所を右クリック(またはコントロールクリック)し、 を選択します Add existing {linked class name}
リンクするオブジェクトを選択し、 Selectボタンを押します
重要
オブジェクト関係を追加しても、既存のオブジェクト関係は削除されません。 オブジェクト関係を変更する場合は、たとえば、タスクをあるカテゴリから別のカテゴリに移動した場合、タスクを古いカテゴリにリンクした関係も削除する必要があります。
オブジェクト関係を削除するには:
関係を定義するプロパティをクリックします。
関係を削除するオブジェクトを右クリック(またはコントロールクリック)し、関係のタイプに応じてRemove selected row from the listまたはDelete selected objectを選択します。
アクションの確認を求めるダイアログが表示されます。 オブジェクトを削除または削除することを確認するには、 ボタンを押します。
オブジェクトの削除
Realm からオブジェクトを削除するには
削除するオブジェクトを右クリック(またはコントロールクリック)し、 Delete selected objectを選択します。
アクションの確認を求めるダイアログが表示されます。 Delete selected object ] ボタンを押して確定します。
Tip
Delete selected objectオプションが表示されない場合は、リンク関係リスト ビューで表示されていることがあります。 オブジェクトが保存されているクラスに直接Goします。
オブジェクトが保存されている クラスにいて、 Delete selected objectsオプションが表示されない場合は、別のオブジェクトが選択されている可能性があります。 [] をクリックして削除するオブジェクトを選択し、右クリック(またはコントロールクリック)して削除オプションを取得します。
データの保存
Realm オブジェクトはライブ オブジェクトであるため、Realm ファイルに変更を加え、クライアント アプリにリアルタイムで反映されるのを確認できます。 Realm Studio では、データを使用して他の操作を行います。 ファイルを保存するには、次の手順に従います。
File > Save data にGoし、JSON または Local Realm を選択します。
ファイルを保存するファイル名と宛先を選択します。
Save ボタンを押してください。
JSON ファイルを使用する
データを JSON として保存した場合は、アプリにインポートできます。 お好みの方法で JSON をアプリにインポートします。
重要
"Flatted" ファイル
When exporting to a JSON file, Realm Studio uses the Flatted package. 別のアプリケーションでファイルを開きたい場合は、 Flatted.parse()
を使用する必要があります。
Realm ファイルの使用
データを Realm ファイルとして保存し、 スキーマを変更していない 場合は、その Realm ファイルをクライアントアプリ内の既存の Realm ファイルの直接置き換えとして使用できます。 ファイルシステム上の既存の Realm ファイルを新しいものに置き換えるだけです。
あるいは、Realm のコピーを保存し、コピーを開き、コピーでスキーマを変更することもできます。 これにより、完全な元の Realm ファイルが保持されますが、スキーマの反復処理は可能になります。 その後は、移行を実行せずに、クライアントアプリで既存の Realm ファイルを引き続き使用できます。 2 つ目の Realm ファイルを使用して、新しいスキーマの移行をテストできます。