Migration
-
Cmn
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 |
|
|---|---|
|
Creates a new migration between |
Cmn
android
N
|
Public functions |
||
|---|---|---|
open Unit |
migrate(connection: SQLiteConnection)Should run the necessary migrations. |
Cmn
android
N
|
open Unit |
Should run the necessary migrations. |
android
|
Public constructors
Migration
Migration(startVersion: Int, endVersion: Int)
Creates a new migration between startVersion and endVersion inclusive.
Public functions
migrate
open 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 |
migrate
open 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.
This function is only called when Room is configured without a driver. If a driver is set using androidx.room.RoomDatabase.Builder.setDriver, then only the version that receives a SQLiteConnection is called.
| Parameters | |
|---|---|
db: SupportSQLiteDatabase |
The database instance |
| Throws | |
|---|---|
kotlin.NotImplementedError |
if migrate(SQLiteConnection) is not overridden. |