今天我看到了一个错误: 需要从[n]迁移到[n+2],但未找到

问:当我已经切换到新版本时,我应该保留自动迁移的线路吗?带有数据库模式的JSON文件是否打包为APK和/或AAB?

这样写就够了吗?

@Database(
    entities = [Setting::class, ProfileModel::class, EventsClicks::class],
    version = 5,
    autoMigrations = [
        AutoMigration(from = 4, to = 5)
    ]
)

或者我应该一直这样写?

@Database(
    entities = [Setting::class, ProfileModel::class, EventsClicks::class],
    version = 5,
    autoMigrations = [
        AutoMigration(from = 1, to = 2),
        AutoMigration(from = 2, to = 3, spec = AppDatabase.MyAutoMigration::class),
        AutoMigration(from = 3, to = 4),
        AutoMigration(from = 4, to = 5)
    ]
)

https://developer.android.com/training/data-storage/room/migrating-db-versions上没有这样的信息,许多其他指南也没有.你能帮我理解一下吗?

推荐答案

这取决于,如果您的用户拥有版本1的数据库(很长一段时间没有更新应用程序),并且不存在从版本1到版本5的迁移方案,则应用程序将无法运行,因此将其保留为might是个好主意

此外,房间能够跳过版本在迁移,as mentioned in this article,所以你可以缩短自动迁移

Android相关问答推荐

错误:无法解析Symbol@style/Theme. Androidstudio in AndroidManifest.html for Kotlin Android Development''

为什么R8不混淆某些类?

将Any强制转换为Integer将从API返回NullPointerException

合成 colored颜色 的GSON反序列化

组成底部导航栏,自定义形状,周围透明

如何在Jetpack导航中不显示目的地?

泛型类型lambda函数参数作为函数参数

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

Android从已连接的设备获得GATT

如何在DownloadManager Android中显示ProgressBar和Complete Listener

Hilt+Worker NoSuchMethodException:<;init>;[class android.content.Context,class androidx.work.WorkerParameters]

Kotlin - 在继续之前如何等待这个协程完成?

弹出导航堆栈后,Compose 无法访问 Hilt View Model

有没有办法迭代类型安全的项目访问器?

setContentView() 方法的签名

如何添加到先前预填充的 Room 数据库?

您如何衡量条形图的 4 个类别?

如何在 Jetpack compose 中将 Canvas 中的文本居中?

Kotlin Compose 全局页脚视图

Android:在模块 jetified-play-services-measurement 和 jetified-play-services-measurement-impl 中发现重复类