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

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