io.realm
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 { 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.
Resumen del método
Modificador y Tipo | Método y descripción |
|---|---|
vacío público | Este método se llamará si se necesita una migración. |
Detalle del método
emigrar
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
|