安装包 io.realm
接口 RealmMigration
-
public interface RealmMigration
RealmMigration 类用于执行从一种 Realm 模式到另一种 Realm 模式的迁移。 Realm 的模式由项目中扩展RealmObject
或实施RealmModel
的所有类定义,因此对这些类的任何更改都需要进行迁移。为了支持从任何以前的 schemaVersion 到最新 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)
如果需要迁移,则会调用此方法。
-
-
-
方法详细信息
-
迁移
void migrate( DynamicRealm 域, long oldVersion, long newVersion)
如果需要迁移,则会调用此方法。 整个方法包装在写事务(write transaction)中,因此可以创建、更新或删除任何现有对象,而无需将其包装在自己的事务中。- 参数:
realm
- 要执行迁移的 Realm 模式。oldVersion
- 迁移开始时 Realm 的模式版本。newVersion
- 执行迁移后 Realm 的模式版本。
-
-