首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从领域迁移到Sqlite

从领域迁移到Sqlite
EN

Stack Overflow用户
提问于 2019-04-11 06:01:54
回答 1查看 546关注 0票数 3

我使用Realm启动我的应用程序,因为它似乎是当时存储数据的最方便的方式。

这个领域目前对我来说有两大缺点:

  • APK大小:领域库增加了很多APK大小。我目前正在使用advanced来最小化影响,不过,与SQLite相比,这还是一个问题(我的用例非常简单,不需要高级特性)
  • 与应用程序包的兼容性:当我开始使用应用程序包来克服上面的问题时,另一个问题出现了,并且仍然存在:这里

因此,我想回到普通的SQLite (可能使用Room)。

问题是,为了“迁移”,我需要在相当一段时间内并行地迁移所有现有用户。

该计划将是:

  1. Room创建数据结构
  2. 有一种升级机制,它将所有的领域表都填入Room
  3. 仅在应用程序中使用Room数据结构
  4. 发布应用程序X版
  5. 在某个时候,从应用程序中删除领域(只有在99%的用户使用app X版时才能完成)

我想没有别的办法了,还是有人已经面临同样的问题了?

EN

回答 1

Stack Overflow用户

发布于 2019-10-13 00:37:04

我现在也有同样的情况。

当前观念

我会说,步骤1-5的计划是将in-app/local数据库从领域迁移到SQLite。对于用户采用正确的版本,数据库迁移为用户工作(100%),它有所有的考虑。

我在考虑另一个选择。一个web服务。(请原谅我,因为我还没有实现这个解决方案,我还在考虑/计划阶段)。

如果在预算上,如何设置一个web服务来代表应用程序进行数据库迁移?

在线数据库迁移

类似于这样的东西:

  1. 更新您的应用程序运行仅与SQLite (删除所有有关领域);
  2. 您更新的应用程序,在开始,检测它是否有一个SQLite数据库;
  3. 如果没有检测到SQLite数据库,应用程序检查领域数据库;
  4. 如果找到一个领域数据库文件,则将文件发送到您的web服务,以便迁移到SQLite,然后发送回应用程序并相应安装;
  5. 从新更新的SQLite数据库文件中恢复;
  6. 如果没有找到SQLite和领域数据库文件,则将SQLite创建为从未存在的领域;

注意事项

  • 数据传输、托管和处理成本(无服务器/lambda服务是一种选择?微型服务?);
  • web服务端的并发性(有多少用户同时需要此服务?)
  • 用户隐私(对用户隐私、服务条款、隐私政策的任何破坏?)
  • 传输和存储的安全性(如果您计划有任何类型的回滚计划);
  • 域数据库加密了吗?怎么处理呢?
  • 我们将web服务用于数据库迁移的时间保持在线上多久?
  • 如果出了什么问题,我们是否将领域文件保存在设备上?
  • 此任务有任何特定的日志记录要求吗?
  • 我们是否需要遵守任何标准或实践?

结束语

正如前面提到的,我还没有实现这样的解决方案,所以我还不能提供关于实际情况的见解(如果我遵循这条路径,我将更新这个答案)。

我有一种感觉,这种在线数据库迁移方法的主要优势是我们从数据库迁移中卸载应用程序;另一方面,它增加了一个已经有风险的任务的相当复杂。

最后,我现在能想到的另一种可能性是通过web将数据库完全在线、Firebase或可访问。但我相信这条路与我可以从你的问题中推断出来的情景不匹配。

也想听听社区的消息。

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55625666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档