Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

RealmMigration インターフェース

項目一覧

  • io.realm
  • メソッドの概要
  • メソッドの詳細
  • 移行する

RealmMigration クラスは、ある Realm スキーマから別の Realm スキーマへの移行を実行するために使用されます。 Realm のスキーマは、 io.realm.RealmObjectを拡張するプロジェクト内のすべてのクラスによって定義されるため、これらのクラスに対する変更には移行が必要になります。

以前の schemaVersion から最新のものへの移行をサポートするには、移行を作成するときに次のパターンが推奨されます。

public class CustomMigration implements RealmMigration {
@Override
public long migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion == 0) {
// Migrate from v0 to v1
oldVersion++;
}
if (oldVersion == 1) {
// Migrate from v1 to v2
oldVersion++;
}
if (oldVersion < newVersion) {
throw new IllegalStateException(String.format(Locale.US, "Migration missing from v%d to v%d", oldVersion, newVersion));
}
}
}

開発中に RealmObject クラスが頻繁に変更される場合は、 io.realm.Realm.deleteRealm(RealmConfiguration)を使用できます。 これにより、データベース ファイルが削除され、移行が不要になります。

Tip

以下も参照してください。

修飾子と型
メソッドと説明
public void
migrate (
long oldVersion,
long newVersion
)

このメソッドは、移行が必要な場合に呼び出されます。

public void migrate (
long oldVersion,
long newVersion
)

このメソッドは、移行が必要な場合に呼び出されます。 メソッド全体は書き込みトランザクションにラップされているため、自分のトランザクションでラップすることなく、既存のオブジェクトを作成、更新、または削除することができます。

パラメーター

  • realm - 移行を実行する Realm スキーマ。

  • oldVersion - 移行開始時点での Realm のスキーマ バージョン。

  • newVersion - 移行実行後の Realm のスキーマ バージョン。

戻る

RealmMap