Skip to content

Most visited

Recently visited

added in version 1.1.0
belongs to Maven artifact


public abstract class Migration
extends Object


Base class for a database migration.

Each migration can move between 2 versions that are defined by startVersion and endVersion.

A migration can handle more than 1 version (e.g. if you have a faster path to choose when going version 3 to 5 without going to version 4). If Room opens a database at version 3 and latest version is >= 5, Room will use the migration object that can migrate from 3 to 5 instead of 3 to 4 and 4 to 5.

If there are not enough migrations provided to move from the current version to the latest version, Room will clear the database and recreate so even if you have no changes between 2 versions, you should still provide a Migration object to the builder.



public final int endVersion

public final int startVersion

Public constructors

Migration(int startVersion, int endVersion)

Creates a new migration between startVersion and endVersion.

Public methods

abstract void migrate(SupportSQLiteDatabase database)

Should run the necessary migrations.

Inherited methods

From class java.lang.Object



added in version 1.1.0
int endVersion


added in version 1.1.0
int startVersion

Public constructors


added in version 1.1.0
Migration (int startVersion, 
                int endVersion)

Creates a new migration between startVersion and endVersion.

startVersion int: The start version of the database.

endVersion int: The end version of the database after this migration is applied.

Public methods


added in version 1.1.0
void migrate (SupportSQLiteDatabase database)

Should run the necessary migrations.

This class cannot access any generated Dao in this method.

This method is already called inside a transaction and that transaction might actually be a composite transaction of all necessary Migrations.

database SupportSQLiteDatabase: The database instance

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)