Назад к вопросам
МТС Линк
Junior — Middle
87
Каким образом реализовать миграцию базы данных при использовании Room в Android?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для реализации миграции базы данных при использовании Room в Android нужно:
- Создать новую версию базы данных, увеличив значение
versionв аннотации@Database. - Определить класс миграции, реализующий интерфейс
Migration, где в методеmigrate()описать SQL-команды для преобразования схемы. - Передать объект миграции в билдер Room при создании базы через метод
addMigrations().
Пример миграции с версии 1 на 2:
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, "app-db")
.addMigrations(MIGRATION_1_2)
.build()
Таким образом, при обновлении версии Room применит миграцию и сохранит данные.