Junior — Middle
Room fournit-il une prise en charge intégrée des mises à jour automatiques de la base de données lors de modifications du schéma?
sobes.tech IA
Réponse de l'IA
Room ne fournit pas de migration automatique de la base de données lors de modifications du schéma. Si vous modifiez la structure de la base (par exemple, en ajoutant ou en supprimant des colonnes), vous devez décrire explicitement les migrations à l'aide de l'objet Migration. Sans cela, l'application rencontrera une erreur au démarrage avec un nouveau schéma et une ancienne version de la base.
Exemple de 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()
Ainsi, le développeur est responsable de créer et d'appliquer les migrations lors de changements de schéma.