简短的问题:从后续内容看来,我或许应该强调和简化我的问题的核心。核心是:Android 数据库的其他备份选项似乎存在恢复可能会覆盖数据库中当前数据的风险。是这样吗,有没有办法在没有这种风险的情况下进行备份/恢复?
.
长篇问题:浏览了许多(相当多)关于在 Android 上备份 SQLite 数据库的问题后,我有一个问题找不到答案。
所有其他备份/恢复讨论都涉及将 db 文件保存到 SD(或者,在如何将 Android 上的 SQLite 数据库备份/恢复到 Dropbox中,到云中),然后在需要时恢复它。我担心的是,恢复不会覆盖当前数据库吗?
我担心用户何时重新安装了他们已经使用了很短时间的应用程序(生成新数据),然后想要从应用程序的先前备份中导入数据。对于所有其他备份/恢复方法,恢复旧数据库文件似乎会覆盖当前数据库文件中的任何新数据。相反,我想要的是一个备份选项,它在恢复时会将备份中的数据添加到当前数据库中,以使其完整而不会覆盖其中的任何其他内容。
其他方法会这样做吗?或者,正如我怀疑的那样,在这种情况下它们会覆盖吗?
如果他们确实覆盖了,那么我最好的备份选项可能是写出 csv 或 xml 文件或其他东西,我希望这些备份讨论是关于简单的方法来做到这一点。是否有任何流程可以加快该流程并使其变得容易,还是我必须手动完成所有这些操作?如果是这样,关于写入格式的建议以及为什么?
同样,有谁知道使用 BackupAgentHelper 的内置 Google 备份是否会有同样的覆盖问题?
最后,如果我最终要进行数据迁移(类似于如何在核心数据模型更改后从备份中恢复 SQLite 数据库(轻量级迁移)),我现在应该做什么(我仍处于数据库设计阶段) 使这种潜在的未来变化相对于这个备份过程更容易?