Back to questions
Junior — Middle
67
Обеспечивает ли Room встроенную поддержку автоматических обновлений базы данных при изменениях схемы?
Companies where asked
Joy Dev
Answer from AI
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()
Таким образом, разработчик отвечает за создание и применение миграций при изменении схемы.