Junior — Middle
¿Proporciona Room soporte incorporado para actualizaciones automáticas de la base de datos cuando cambian los esquemas?
sobes.tech AI
Respuesta de la IA
Room no proporciona una migración automática de la base de datos cuando hay cambios en el esquema. Si modificas la estructura de la base (por ejemplo, añadiendo o eliminando columnas), debes describir explícitamente las migraciones usando el objeto Migration. Sin esto, la aplicación generará un error al iniciarse con un esquema nuevo y una versión antigua de la base.
Ejemplo de migración:
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 esta manera, el desarrollador es responsable de crear y aplicar migraciones cuando cambie el esquema.