Sobes.tech
Junior — Middle

Room, sxemanın dəyişiklikləri zamanı verilənlər bazasının avtomatik yenilənməsini daxili dəstək təmin edirmi?

sobes.tech Süni İntellekt

AI-dan cavab

Room, şema dəyişiklikləri zamanı avtomatik verilənlər bazası köçürməsini təmin etmir. Əgər siz bazanın strukturunu dəyişirsinizsə (məsələn, sütunlar əlavə edib və ya silirsinizsə), Migration obyektindən istifadə edərək köçürmələri açıq şəkildə təsvir etməlisiniz. Bəs olmadan, tətbiq yeni sxema və köhnə baza versiyası ilə başladıqda xəta verəcək.

Köçürmə nümunəsi:

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

Beləliklə, inkişaf etdirici sxema dəyişikliklərində köçürmələri yaratmaq və tətbiq etmək məsuliyyətindədir.