Migration
abstract class Migration
kotlin.Any | |
↳ | androidx.room.migration.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 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 | |
---|---|
Creates a new migration between |
Public methods | |
---|---|
abstract Unit |
migrate(@NonNull database: SupportSQLiteDatabase) Should run the necessary migrations. |
Properties | |
---|---|
Int | |
Int |
Public constructors
<init>
Migration(
startVersion: Int,
endVersion: Int)
Creates a new migration between startVersion
and endVersion
.
Parameters | |
---|---|
startVersion |
Int: The start version of the database. |
endVersion |
Int: The end version of the database after this migration is applied. |
Public methods
migrate
abstract fun migrate(@NonNull database: SupportSQLiteDatabase): Unit
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 Migration
s.
Parameters | |
---|---|
database |
SupportSQLiteDatabase: The database instance |
Properties
endVersion
val endVersion: Int
startVersion
val startVersion: Int