Junior — Middle
Обеспечивает ли Room встроенную поддержку автоматических обновлений базы данных при изменениях схемы?
sobes.tech AI
Ответ от нейросети
Room не обеспечивает автоматическую миграцию базы данных при изменениях схемы. Если вы изменяете структуру базы (например, добавляете или удаляете столбцы), необходимо явно описать миграции с помощью объекта 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()
Таким образом, разработчик отвечает за создание и применение миграций при изменении схемы.