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(startVersion: Int, endVersion: Int)

Creates a new migration between startVersion and endVersion inclusive.

Cmn

Public functions

abstract suspend Unit

Should run the necessary migrations.

Cmn

Public properties

Int
Cmn
Int
Cmn

Public constructors

Migration

Migration(startVersion: Int, endVersion: Int)

Creates a new migration between startVersion and endVersion inclusive.

Public functions

migrate

abstract suspend fun migrate(connection: SQLiteConnection): Unit

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
connection: SQLiteConnection

The database connection

Public properties

endVersion

val endVersionInt

startVersion

val startVersionInt