破坏性迁移后未调用会议室数据库onCreate回调

时间:2019-05-21 22:40:48

标签: android sqlite android-room

我需要在Room数据库中创建一些初始状态。我在onCreate回调中这样做:

10

在添加破坏性迁移之前,此方法非常有效。所有应用程序数据均来自服务器。当前没有理由编写迁移,因为该应用程序在登录时已同步。

val database = Room.databaseBuilder(context, MyDatabase::class.java, "mydatabase").addCallback(object : RoomDatabase.Callback() {
    override fun onCreate(db: SupportSQLiteDatabase) {
      super.onCreate(db)
      database.myDao().initialize()
    }
  })
  .build()

问题在于myDao.initialize()中执行的初始化被清除了,并且似乎即使迁移是破坏性的,也不会再次调用onCreate。

有没有一种好方法来解决此问题,而无需为每个数据库版本编写自定义迁移?

IE可以编写针对每个数据库版本运行的破坏性迁移,还可以调用我的initialize()函数吗?

0 个答案:

没有答案