パッケージ io.realm
RealmMigration インターフェース
-
public interface RealmMigration
RealmMigration クラスは、ある Realm スキーマから別の Realm スキーマへの移行を実行するために使用されます。 Realm のスキーマは、RealmObject
を拡張するかRealmModel
を実装するプロジェクト内のすべてのクラスによって定義されるため、これらのクラスに対する変更には移行が必要になります。以前の 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 クラスが頻繁に変更される可能性がある場合は、
Realm.deleteRealm(RealmConfiguration)
を使用できます。 これにより、データベース ファイルが削除され、移行が不要になります。
-
-
メソッドの概要
すべてのメソッド インスタンス メソッド 抽象メソッド 修飾子と型 方式 説明 void
migrate(DynamicRealm realm, long oldVersion, long newVersion)
このメソッドは、移行が必要な場合に呼び出されます。
-
-
-
メソッドの詳細
-
移行する
無効化末尾(Device Realm Realm、 oldVersion、long newVersion )
このメソッドは、移行が必要な場合に呼び出されます。 メソッド全体は書き込みトランザクションにラップされているため、自分のトランザクションでラップすることなく、既存のオブジェクトを作成、更新、または削除することができます。- パラメーター:
realm
- 移行を実行する Realm スキーマ。oldVersion
- 移行開始時点での Realm のスキーマ バージョン。newVersion
- 移行実行後の Realm のスキーマ バージョン。
-
-