【问题标题】:Delete pre-populated sqlite database when update in cordova在cordova中更新时删除预填充的sqlite数据库
【发布时间】:2016-10-26 01:09:41
【问题描述】:

我已经完成了我的项目,其中包含一个预先填充的 sqlite 数据库。

我找到了this 插件,它非常适合我。 Lifehelper 的产品确实非常出色,并且它们的文档维护得非常好。

但是,当我打开数据库时,我使用这种格式,这是他们为预填充数据库建议的文档。

var db = window.sqlitePlugin.openDatabase({name: "my.db", location: 'default', createFromLocation: 1});

但是,我的数据库仅供参考。应用程序仅从预先填充的数据库中读取数据。没有任何插入、更新或删除查询来保留任何用户信息。

在每个新版本中,预填充的数据都可以由我修改和更新。所以当用户更新他们的应用程序时,我需要安装全新的应用程序以及新的数据库。

但不幸的是,我的应用无法删除以前的数据库。更改版本代码也不起作用。

有人建议我,它是关于我用来打开数据库的位置。但我不明白应该如何处理它。

帮助我,最佳答案对我来说更重要。谢谢。

【问题讨论】:

  • 你解决了吗?我也在为此苦苦挣扎。
  • @RemiSture,没有找到。我只是在我的每个版本中每次都更改数据库名称,例如 db_v1、db_v2、db_v3。应用程序大小增加,但至少可以解决。

标签: android sqlite cordova cordova-plugins


【解决方案1】:

为避免增加应用程序大小,您可以执行以下操作:

function cleanupDatabases() {
  var oldDatabases = ["2.1.0.db", "2.0.0.db"];

  if (window.sqlitePlugin !== undefined) {
    angular.forEach(oldDatabases, function(db) {
      window.sqlitePlugin.deleteDatabase({
        name: db,
        location: 2
      }, function() {
        console.log("%c " + db + " is deleted", "background: green; color: white");
      }, function(error) {
        console.log("%c " + db + " could not be deleted", "background: red; color: white", error);
      });
    });
  }
};

【讨论】:

  • 哇,太好了。我稍后再申请。
猜你喜欢
  • 2016-10-24
  • 1970-01-01
  • 2015-11-24
  • 2021-12-13
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
相关资源
最近更新 更多