title: Right way of doing Realm Migration Android
body: <p>We use Realm for our app. Our app has been beta released. Now I want to add a field to one of our realm objects. So I got to write RealmMigration and I wrote one too. The Question here is how to apply this Realm migration to my app. I use Realm.getInstance() get the realm instance whenever I want to something. Remember, Realm.getInstance() is being used in the entire app everytime, I want to access Realm database. </p>
  
  <p>So, I am bit Queried on how to apply this migration? Any leads can be helpful. Thanks.</p>
  
  <p>My RealmMigration is as follows.</p>
  
  <pre><code>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;
  
  }
  </code></pre>
  
  <p>Removed Getter and Setters from RealmObject to cut short the Question. The exception occurred when I try to reinstall the app without uninstalling the previous one. Please advice.</p>