【发布时间】:2021-09-02 21:50:02
【问题描述】:
我创建数据库的功能是这样的:
operator fun invoke(context: Context) = instance ?: synchronized(LOCK) {
instance ?: buildDatabase(context).also { instance = it }
}
并建立数据库:
private fun buildDatabase(context: Context) = Room.databaseBuilder(context,
AppDatabase::class.java, "Rides.db")
.addMigrations(MIGRATION_1_2)
.addMigrations(MIGRATION_2_3)
.build()
我需要的是 MIGRATION_2_3 只会在调试模式下发生,像这样(伪):
private fun buildDatabase(context: Context) = Room.databaseBuilder(context,
AppDatabase::class.java, "Rides.db")
.addMigrations(MIGRATION_1_2)
if (BuildConfig.Debug)
{
.addMigrations(MIGRATION_2_3)
}
.build()
}
在不创建两个 buildDatabase 函数的情况下实现此目的的正确语法是什么?
【问题讨论】:
标签: android android-room database-migration