2015-09-18 17 views
6

Mam tabelę Gift w moim systemie realm. Teraz muszę zmienić nazwę Gift.class na UserBonus.class i dodać kilka nowych parametrów (a nie prob). Jaki jest prawidłowy sposób to zrobić?Zmień nazwę Tabela dziedziny

wiem, że realm.getTable() może wrócić mi stół, problemem jest to, że stary Gift istnieje w schemacie, ale na fakt, nie mam Gift.class (teraz jest UserBonus i getTable() będzie mi nowy tworzonym stole powrót), więc nie mogę się zestarzeć wartości tabeli upominków i przenieś je do nowej tabeli premii.

Jedyny sposób, w jaki go widzę, pozostawię pusty Gift.class i używam go tylko do migracji.

Dzięki za wszelkie rady,
Yakiv

Odpowiedz

2

Obecnie nie realizować go w sposób następujący:

  • dodana nowa UserBonus.class
  • dodanej @Deprecated do Gift.class
  • skopiować wszystkie dane z Gift tabela do UserBonus Tabela

    // added bonus types 
    Table userBonus = realm.getTable(UserBonus.class); 
    userBonus.addColumn(ColumnType.STRING, "localId"); 
    userBonus.addColumn(ColumnType.INTEGER, "type"); 
    userBonus.addColumn(ColumnType.INTEGER, "date"); 
    userBonus.addColumn(ColumnType.STRING, "userName"); 
    userBonus.addColumn(ColumnType.STRING, "userNumber"); 
    userBonus.addColumn(ColumnType.STRING, "credits"); 
    
    // move Gift to UserBonus 
    RealmResults<Gift> gifts = realm.where(Gift.class).findAll(); 
    for (Gift gift :gifts) { 
        userBonus.add(
          gift.getLocalId(), 
          UserBonus.TYPE_FRIEND, 
          gift.getDate(), 
          gift.getUserName(), 
          gift.getUserNumber(), 
          gift.getCredits() 
        ); 
    } 
    realm.where(Gift.class).findAll().clear(); 
    
4

Może moja odpowiedź będzie nieaktualne, ale teraz w Królestwie na Androida jest metoda „zmień”, które można zmienić nazwy tabeli (model) na schemacie. Kod będzie taki:

RealmSchema schema = Realm.getInstance().getSchema(); 
schema.rename("OldModelName", "NewModelName"); 

I powinno działać!

Dostępne są wszystkie funkcje związane z migracją (od 25 cze 2015) - https://github.com/realm/realm-java/pull/1239