Migration


public abstract class Migration


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 might clear the database and recreate if destructive migrations are enabled.

Summary

Public constructors

Migration(int startVersion, int endVersion)

Creates a new migration between startVersion and endVersion inclusive.

Public methods

final int
final int
void

Should run the necessary migrations.

void

Should run the necessary migrations.

Public constructors

Migration

Added in 2.0.0
public Migration(int startVersion, int endVersion)

Creates a new migration between startVersion and endVersion inclusive.

Public methods

getEndVersion

public final int getEndVersion()

getStartVersion

public final int getStartVersion()

migrate

Added in 2.7.0-alpha01
public void migrate(@NonNull SQLiteConnection connection)

Should run the necessary migrations.

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

Parameters
@NonNull SQLiteConnection connection

The database connection

migrate

Added in 2.0.0
public void migrate(@NonNull SupportSQLiteDatabase db)

Should run the necessary migrations.

The Migration 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.

Parameters
@NonNull SupportSQLiteDatabase db

The database instance

Throws
kotlin.NotImplementedError

if migrate(SQLiteConnection) is not overridden.