Sobes.tech
Junior — Middle

Room, şema değişikliklerinde veritabanı otomatik güncellemeleri için yerleşik destek sağlıyor mu?

sobes.tech yapay zeka

AI'dan gelen yanıt

Room, şema değişiklikleri sırasında veritabanının otomatik göçünü sağlamaz. Yapıyı değiştiriyorsanız (örneğin, sütunlar ekleyip kaldırıyorsanız), Migration nesnesi kullanarak göçleri açıkça tanımlamalısınız. Aksi takdirde, uygulama yeni şema ve eski veritabanı sürümüyle başlatıldığında hata verir.

Göç örneği:

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

Bu nedenle, geliştirici şema değişikliklerinde göçleri oluşturup uygulamaktan sorumludur.