Realm
MongoDB Developer Center
chevron-right
Developer Topics
chevron-right
Products
chevron-right
Realm
chevron-right

How to Update Realm SDK Database Schema for Android

Mohit SharmaPublished Oct 21, 2021 • Updated May 12, 2022
AndroidRealmSDK
facebook icontwitter iconlinkedin icon
random alt
Rate this tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
This is a follow-up article in the
Getting Started Series
. In this article, we learn how to modify/migrate Realm local database schema.

Introduction

As you add and change application features, you need to modify database schema, and the need for migrations arises, which is very important for a seamless user experience.
By the end of this article, you will learn:
  1. How to update database schema post-production release on play store.
  2. How to migrate user data from one schema to another.
Before we get down to business, let's quickly recap how we set Realm in our application.
Doing migration in Realm is very straightforward and simple. The high-level steps for the successful migration of any database are:
  1. Update the database version.
  2. Make changes to the database schema.
  3. Migrate user data from old schema to new.

Update the Database Version

This is the simplest step, which can be done by incrementing the version of REALM_SCHEMA_VERSION, which notifies Relam about database changes. This, in turn, runs triggers migration, if provided.
To add migration, we use the migration function available in RealmConfiguration.Builder, which takes an argument of RealmMigration, which we will review in the next step.

Make Changes to the Database Schema

In Realm, all the migration-related operation has to be performed within the scope of RealmMigration.
To add/update/rename any field:

Migrate User Data from Old Schema to New

All the data transformation during migration can be done with transform function with the help of set and get methods.
In the above snippet, we are setting the default value of fullName by extracting the value from old data, like firstName and lastName.
We can also use transform to update the data type.
In case you want to delete the complete Realm, you can use deleteRealmIfMigrationNeeded with RealmConfiguration.Builder, but that should be considered as the last resort.
Thank you for reading! If you have any queries or comments, you can share them on the
MongoDB Realm forum
or tweet me
@codeWithMohit
.
In the next article, we will discuss how to migrate the Realm database with sync.
If you have an iOS app, do check out the iOS tutorial on
Realm iOS Migration
.

Copy Link
facebook icontwitter iconlinkedin icon
Rate this tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Related
Tutorial
Turning Your Local Game into an Online Experience with MongoDB Realm Sync

May 16, 2022
Quickstart
Unboxing Jetpack Compose: My First Compose App

May 09, 2022
News & Announcements
Realm SDKs 10.0: Cascading Deletes, ObjectIds, Decimal128, and more

May 09, 2022
News & Announcements
Open Synced Realms in SwiftUI using @Auto/AsyncOpen

May 16, 2022
Table of Contents