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

Այսպիսով, ծրագրավորողը պատասխանատու է միգրացիաներ ստեղծելու և կիրառելու համար սիմայի փոփոխության ժամանակ։