如何解决在运行时将数据从 sqlite3 数据库文件导入 Room 数据库
我正在尝试为使用 Room 数据库的应用实现导入/导出功能。
导出是通过复制 getDatabasePath
给出的数据库文件来实现的,但我在实现导入功能时遇到了问题。
我试过使用 Room.databaseBuilder(...).createFromFile()
但它没有帮助,因为它只在创建数据库时有效。
我已经查看了类似问题的其他答案,这些答案建议覆盖数据库文件,但我更喜欢不那么“hacky”的东西(当我尝试它时,它似乎也不起作用)。
如果可能,导入数据应该是:
- 破坏性 - 删除房间数据库中的所有先前数据。
- 可能来自文件、Uri 或 InputStream。
- 可以在运行时使用,因此用户无需重新启动应用。
希望我不需要在数据库之间手动传输数据。
解决方法
尝试用您导出的备份文件覆盖 getDatabasePath
中的数据库文件。
您可能需要在此之后重新启动应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。