android - (RoomDatabase) 从资产更新数据库值而不丢失用户数据
问题描述
在我的 android (Android Studio) 应用程序中,数据是从 RoomDatabase 的 assets 文件夹中的数据库预加载的。
val instance = Room.databaseBuilder(context.applicationContext, NormRoomDatabase::class.java, "legislacion_database")
.createFromAsset("legislacion.db")
.addCallback(NormDatabaseCallback(scope))
.build()
要更新应用程序数据库的数据,我必须更新资产文件夹的数据库数据并将其版本更新为 2。为了加载新数据,我还将 Room 中的数据库版本更新为 2,我添加以下行:
.fallbackToDestructiveMigration()
通过这样做,应用程序中的 db 将使用资产 db 的数据进行更新。到目前为止一切都很好。
问题是这样做还会删除用户在 apk 中添加的数据,例如评论和收藏夹。
如何在不丢失用户添加的数据的情况下使用新资产数据更新我的应用程序?这可能吗?我不想更新数据库方案,只想更新值。
解决方案
推荐阅读
- jupyter-notebook - 如何像我们在 pycharm 或可视代码中一样在 jupyter notebook 中拥有自动完成功能?
- kubernetes - 通过 Helm 安装 ingress-nginx - 检索密码时出错
- python - 在 Python 中使用文件属性时在控制台上显示打印
- xml - 将 xmlns 添加到根元素保留现有的命名空间
- sql - R - 得到一个向量,告诉我另一个向量的值是否是第一次出现
- javascript - 每次点击复选框后如何显示谷歌recaptcha图像验证?
- api - 如何从 LinkedIn API 获取事件数据?
- javascript - 得到错误 next.js TypeError: users.map is not a function
- reactjs - TypeError:无法解构“集合”的属性“标题”,因为它未定义
- regex - 无法将正则表达式模式表单文件解析为 powershell 中的变量