我是新人。如何迁移房间数据库。我尝试使用此指令迁移https://developer.android.com/training/data-storage/room/migrating-db-versions,但不明白我应该在哪里使用它。我将版本从 1 更改为 2 并添加列@ColumnInfo(name = "age") val age: Int
你能帮我迁移它吗?
@Entity
data class User(
@PrimaryKey(autoGenerate = true) val uid: Int = 0,
@ColumnInfo(name = "first_name") val firstName: String?,
@ColumnInfo(name = "last_name") val lastName: String?,
@ColumnInfo(name = "age") val age: Int
)
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): LiveData<List<User>>
@Query("SELECT * FROM user WHERE uid IN (:userIds)")
fun loadAllByIds(userIds: IntArray): List<User>
@Query(
"SELECT * FROM user WHERE first_name LIKE :first AND " +
"last_name LIKE :last LIMIT 1"
)
fun findByName(first: String, last: String): User
@Insert
fun insertAll(vararg users: User)
@Delete
fun delete(user: User)
}
@Database(entities = arrayOf(User::class), version = 2)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
companion object {
private val mBD = AppDatabase
val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE 'User' ADD COLUMN 'age' INTEGER DEFAULT 0")
}
}
}
}