Sobes.tech
Junior — Middle

Biedt Room ingebouwde ondersteuning voor automatische database-updates bij schemawijzigingen?

sobes.tech AI

Antwoord van AI

Room biedt geen automatische migratie van de database bij schemawijzigingen. Als je de structuur van de database wijzigt (bijvoorbeeld door kolommen toe te voegen of te verwijderen), moet je expliciet migraties beschrijven met behulp van het Migration-object. Zonder dit zal de applicatie bij het starten met een nieuw schema en een oude databaseversie een fout geven.

Voorbeeld van migratie:

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()

De ontwikkelaar is dus verantwoordelijk voor het maken en toepassen van migraties bij schemawijzigingen.