Docs Menu
Docs Home
/ /
io.realm

Interfaz RealmMigration

La clase RealmMigration se utiliza para migrar un esquema de Realm a otro. El esquema de un Realm se define mediante todas las clases de un proyecto que extienden io.realm.RealmObject o implementan io.realm.RealmModel, por lo que cualquier cambio en estas clases requerirá una migración.

Para admitir migraciones de cualquier versión de esquema anterior a la más reciente, se recomienda el siguiente patrón al escribir una migración:

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));
}
}
}

Durante el desarrollo, cuando las clases de RealmObject pueden cambiar con frecuencia, es posible usar io.realm.Realm.deleteRealm(RealmConfiguration). Esto eliminará el archivo de base de datos y evitará la necesidad de migraciones.

Tip

Modificador y Tipo
Método y descripción

vacío público

long oldVersion,
long newVersion
)

Este método se llamará si se necesita una migración.

public void migrate (
long oldVersion,
long newVersion
)

Este método se llamará si se requiere una migración. Todo el método está encapsulado en una transacción de escritura, por lo que es posible crear, actualizar o eliminar cualquier objeto existente sin encapsularlo en su propia transacción.

Parámetros

  • realm - el esquema de Realm en el que se realizará la migración.

  • oldVersion - la versión del esquema del Reino al inicio de la migración.

  • newVersion - la versión del esquema de Realm tras ejecutar la migración.

Volver

Mapa del reino

En esta página