Migration

abstract class Migration


Base class for a database migration.

Creates a new migration between startVersion and endVersion.

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.

Summary

Public constructors

Migration(startVersion: Int, endVersion: Int)

Public functions

abstract Unit

Should run the necessary migrations.

Public properties

Int
Int

Public constructors

Migration

Added in 2.0.0
Migration(startVersion: Int, endVersion: Int)

Public functions

migrate

Added in 2.0.0
abstract fun migrate(db: SupportSQLiteDatabase): Unit

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
db: SupportSQLiteDatabase

The database instance

Public properties

endVersion

Added in 2.0.0
val endVersionInt

startVersion

Added in 2.0.0
val startVersionInt