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

Обеспечивает ли Room встроенную поддержку автоматических обновлений базы данных при изменениях схемы?

Компании, где спрашивали
Joy Dev

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

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()

Таким образом, разработчик отвечает за создание и применение миграций при изменении схемы.