Ответ
Да, работал с миграцией БД в Room. Миграция нужна при изменении структуры БД (добавление/удаление таблиц, колонок и т.д.). В Room для этого используется Migration:
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE users ADD COLUMN last_login INTEGER NOT NULL DEFAULT 0")
}
}
Room.databaseBuilder(context, AppDatabase::class.java, "app.db")
.addMigrations(MIGRATION_1_2)
.build()
Важно:
- Указывать правильные версии БД (fromVersion, toVersion)
- Обрабатывать возможные исключения
- Тестировать миграцию перед релизом
- Для сложных изменений можно использовать временные таблицы