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.