Sobes.tech
Junior — Middle

Room осигурява ли вградена поддръжка за автоматични актуализации на базата данни при промени в схемата?

sobes.tech AI

Отговор от 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()

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