Sobes.tech
Назад к вопросам
Junior — Middle
87

Каким образом реализовать миграцию базы данных при использовании Room в Android?

Компании, где спрашивали
МТС ЛинкМТС Линк

Ответ от нейросети

sobes.tech AI

Для реализации миграции базы данных при использовании Room в Android нужно:

  1. Создать новую версию базы данных, увеличив значение version в аннотации @Database.
  2. Определить класс миграции, реализующий интерфейс Migration, где в методе migrate() описать SQL-команды для преобразования схемы.
  3. Передать объект миграции в билдер 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 применит миграцию и сохранит данные.