【问题标题】:Delete old database and copy new database on application update删除旧数据库并在应用程序更新时复制新数据库
【发布时间】:2014-11-06 06:17:44
【问题描述】:

我的要求与正常情况完全不同。我想删除旧数据库并在应用程序更新时复制新数据库。我在不同的论坛上搜索相同的内容,每个人都说要为此运行更新脚本。但这不符合我的要求。我的客户想为每个版本删除旧数据库并复制新数据库。因为我们的客户可以一次更新任何应用程序版本。

如果有在应用程序更新时执行此操作的替代方法,那就太好了。

注意:我们的应用程序在 Google Play 商店中不可用,因此我们正在以编程方式更新应用程序。如果有任何新版本可供用户使用,我们会提示他们提供新版本。在后台,我们正在下载新的 apk 文件,并在下载完成后将用户重定向到 INSTALL 意图。

【问题讨论】:

    标签: android database auto-update


    【解决方案1】:

    为什么不运行所有表的 SELECT 语句,将它们放在公共共享 txt 文件中,然后在安装新版本时读取文件并运行插入脚本 编辑 使用上述说明删除您的数据库

    context.deleteDatabase(DATABASE_NAME);
    

    【讨论】:

    • 嗨,Nadir,我不想要旧数据库的任何数据。我只想在更新时用新数据库替换旧数据库。
    • 为什么不直接删除旧数据库?
    • 是的。我明白你的意思了。但是什么是合适的方法呢?因为我们正在更新 datahelper 类的 OnUpgrade() 方法的脚本。但是我们不能删除数据库。如果不删除数据库,我们就无法更新新数据库。
    【解决方案2】:

    为什么不使用数据库的数字版本?

    我的客户想要删除旧的并为每个数据库复制新的数据库 发布。因为我们的客户可以随时更新任何应用程序版本 时间。

    =>它将完全满足您的需求(或者我不完全理解>_ 您在新发布的应用程序版本中增加它,然后是SQLOpenHelper will run the onUpgrade method。您只需编写要执行的升级脚本。
    你可以阅读this answer for more details

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多