Room 数据库使用方面
最近看google 官方的room数据库自动迁移的文档。写demo验证,一直无法验证成功.
我尝试从数据库 version 3 升级到 version 4.升级操作是更改User表名称为 appUser。
同时将UserDao里面定义的查询语句从from user,调整为from appUser。将@Entity(tablename=”user“) 替换为 @Entity(tablename=”appuser“)
@Database(
entities = [User::class, ClassRoom::class], version = 4, autoMigrations = [
AutoMigration(from = 3, to = 4,spec = AppDatabase.RenameMigration::class)
], exportSchema = true
)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
abstract fun classRoomDao(): ClassRoomDao
private val mIsDatabaseCreated = MutableLiveData<Boolean>()
@RenameTable(fromTableName = "User", toTableName = "appuser")
class RenameMigration : AutoMigrationSpec
}
运行结果及报错内容
/Users/yangweichao/application/jetPack/Room/app/build/tmp/kapt3/stubs/debug/com/kuaidao/jetpackroom/db/AppDatabase.java:7: 错误: AutoMigration Failure in 'RenameMigration': The table renamed from 'User' to 'appuser' is not found in the new version of the database.
public abstract class AppDatabase extends androidx.room.RoomDatabase {
相关链接
https://developer.android.com/training/data-storage/room/migrating-db-versions