Pacote io.realm

Interface RealmMigration


  • public interface RealmMigration
    A classe RealmMigration é usada para executar a migração de um esquema Realm para outro. O esquema de um Realm é definido por todas as classes em um projeto que estendem RealmObject ou implementam RealmModel, portanto, qualquer alteração nessas classes exigirá uma migração.

    Para oferecer suporte a migrações de qualquer schemaVersion anterior para o mais recente, o seguinte padrão é recomendado ao escrever uma migração:

     
     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 o desenvolvimento, quando as classes RealmObject podem mudar com frequência, é possível usar o Realm.deleteRealm(RealmConfiguration). Isso excluirá o arquivo do reconhecimento de data center e eliminará a necessidade de migrações.

    Veja também:
    RealmConfiguration.Builder.schemaVersion(long), RealmConfiguration.Builder.migration(RealmMigration), RealmConfiguration.Builder.deleteRealmIfMigrationNeeded()
    • Detalhes do método

      • Migrar

        Migrar(DynamicRealm Realm, antigoVersão longo, NovoVersão longo)
        Este método será chamado se uma migração for necessária. O método inteiro é envolto em uma transação de escrita, portanto é possível criar, atualizar ou excluir qualquer objeto existente sem envolvê-lo em sua própria transação.
        Parâmetros:
        realm - o esquema Realm no qual realizar a migração.
        oldVersion - a versão do esquema do Realm no início da migração.
        newVersion - a versão do esquema do Realm após a execução da migração.