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

Ошентип, иштеп чыгуучу схеманы өзгөртүүдө миграцияларды түзүү жана колдонуу жоопкерчилигинде.