Sobes.tech
Junior — Middle

Stellt Room eine integrierte Unterstützung für automatische Datenbankaktualisierungen bei Änderungen des Schemas bereit?

sobes.tech KI

Antwort von AI

Room bietet keine automatische Migration der Datenbank bei Änderungen am Schema. Wenn Sie die Struktur der Datenbank ändern (z.B. Spalten hinzufügen oder entfernen), müssen Sie Migrationen explizit mit dem Migration-Objekt beschreiben. Ohne dies führt die Anwendung beim Start mit einem neuen Schema und einer alten Datenbankversion zu einem Fehler.

Beispiel für eine Migration:

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

Der Entwickler ist somit verantwortlich für die Erstellung und Anwendung von Migrationen bei Änderungen am Schema.