Junior — Middle
Ar Room suteikia integruotą palaikymą automatinėms duomenų bazės atnaujinimams, kai keičiasi schema?
sobes.tech AI
Atsakymas iš AI
Room nesuteikia automatinės duomenų bazės migracijos keičiant schemą. Jei keičiate duomenų bazės struktūrą (pavyzdžiui, pridedate arba pašalinate stulpelius), turite aiškiai aprašyti migracijas naudodami Migration objektą. Be to, programa sukels klaidą paleidžiant su nauja schema ir sena duomenų bazės versija.
Migracijos pavyzdys:
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE users ADD COLUMN age INTEGER DEFAULT 0 NOT NULL")
}
}
val db = Room.databaseBuilder(context, AppDatabase::class.java, "db-name")
.addMigrations(MIGRATION_1_2)
.build()
Taigi, kūrėjas yra atsakingas už migracijų kūrimą ir taikymą keičiant schemą.