我使用的是 Android Room 2.3.0 和 Dagger 2。
DBModule.kt 提供資料庫實體如下所示:
@Singleton
@Provides
open fun provideDatabase(context: Context): AppDatabase {
return Room.databaseBuilder<AppDatabase>(
context.applicationContext, AppDatabase::class.java,
DATABASE_NAME
).fallbackToDestructiveMigration().build()
}
AppDatabase.kt 班級:
@Database(
entities = [User::class],
version = 1,
exportSchema = false
)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
現在我需要在 User 物體中添加一些新列并增加 db 版本。如果我無權訪問 Room.databaseBuilder,我該如何進行遷移AppDatabase.kt和呼叫?.addMigrations()AppDatabase.kt
uj5u.com熱心網友回復:
DBModule.kt在呼叫之前,只需將遷移添加到類中.build()。
.fallbackToDestructiveMigration()不過要小心。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377837.html
標籤:安卓 sqlite android-room 匕首
上一篇:默認情況下主鍵自動遞增嗎?
下一篇:使Sqllite保留日期時間物件
