Junior — Middle
Room oferă suport încorporat pentru actualizări automate ale bazei de date la modificări ale schemei?
sobes.tech AI
Răspuns de la AI
Room nu oferă o migrare automată a bazei de date atunci când apar modificări ale schemei. Dacă modificați structura bazei (de exemplu, adăugați sau eliminați coloane), trebuie să descrieți explicit migrațiile folosind obiectul Migration. Fără acest lucru, aplicația va genera o eroare la pornire cu o schemă nouă și o versiune veche a bazei.
Exemplu de migrare:
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()
Astfel, dezvoltatorul este responsabil pentru crearea și aplicarea migrărilor atunci când se modifică schema.