【问题标题】:Import data from sqlite3 database file to Room database on runtime在运行时将数据从 sqlite3 数据库文件导入到 Room 数据库
【发布时间】:2021-02-26 16:18:19
【问题描述】:

我正在尝试为使用 Room 数据库的应用实现导入/导出功能。 导出是通过复制getDatabasePath给出的数据库文件来实现的,但是我在实现导入功能时遇到了问题。

我尝试过使用Room.databaseBuilder(...).createFromFile(),但它没有帮助,因为它只在创建数据库时有效。 我已经查看了其他类似问题的答案,这些答案建议覆盖数据库文件,但我最好喜欢一些不那么“hacky”的东西(当我尝试它时,它似乎也不起作用)。

如果可能,导入数据应该是:

  • 破坏性 - 删除房间数据库中的所有先前数据。
  • 可能来自文件、Uri 或 InputStream。
  • 可以在运行时使用,因此用户无需重启应用。

希望我不需要在数据库之间手动传输数据。

【问题讨论】:

    标签: android backup android-room database-backups


    【解决方案1】:

    尝试使用您导出的备份文件覆盖来自getDatabasePath 的数据库文件。

    您可能需要在此之后重新启动应用程序。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2020-01-13
      • 2019-07-13
      相关资源
      最近更新 更多