Sobes.tech
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()

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