Right way of doing Realm Migration Android -
we use realm our app. our app has been beta released. want add field 1 of our realm objects. got write realmmigration , wrote 1 too. question here how apply realm migration app. use realm.getinstance() realm instance whenever want something. remember, realm.getinstance() being used in entire app everytime, want access realm database.
so, bit queried on how apply migration? leads can helpful. thanks.
my realmmigration follows.
public class realmmigrationclass implements realmmigration { @override public void migrate(dynamicrealm realm, long oldversion, long newversion) { if(oldversion == 0) { realmschema sessionschema = realm.getschema(); if(oldversion == 0) { realmobjectschema sessionobjschema = sessionschema.get("session"); sessionobjschema.addfield("issessionrecordinguploading", boolean.class, fieldattribute.required) .transform(new realmobjectschema.function() { @override public void apply(dynamicrealmobject obj) { obj.set("issessionrecordinguploading", false); } }); sessionobjschema.setnullable("issessionrecordinguploading",false); oldversion++; } } } } public class session extends realmobject { @primarykey private string id; @required private date date; private double latitude; private double longitude; private string location; private string note; private string appversion; private string apptype; private string devicemodel; private heartrecording heart; private temperaturerecording temperature; private lungsrecording lungs; @notnull private boolean issessionrecordinguploading; private boolean sessioninfouploaded; private boolean lungsrecordinguploaded; private boolean heartrecordinguploaded; }
removed getter , setters realmobject cut short question. exception occurred when try reinstall app without uninstalling previous one. please advice.
it describe here: https://realm.io/docs/java/latest/#migrations
but in essence, bump schema version , set configuration this:
realmconfiguration config = new realmconfiguration.builder(context) .schemaversion(2) // must bumped when schema changes .migration(new mymigration()) // migration run .build(); realm.setdefaultconfiguration(config); // automatically trigger migration if needed realm realm = realm.getdefaultinstance();
Comments
Post a Comment