Junior — Middle
Kas Room pakub sisseehitatud tuge andmebaasi automaatsete uuenduste jaoks skeemi muutmisel?
sobes.tech AI
Vastus AI-lt
Room ei paku automaatset andmebaasi migratsiooni skeemi muutmisel. Kui muudate andmebaasi struktuuri (näiteks lisades või eemaldades veerge), peate selgelt kirjeldama migratsioone Migration objekti kasutades. Ilma selleta põhjustab rakendus käivitamisel vea, kui uus skeem ja vana andmebaasi versioon on kasutusel.
Migratsiooni näide:
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()
Seega vastutab arendaja skeemi muutmisel migratsioonide loomise ja rakendamise eest.