使用电容器在新的 Ionic 应用程序中读取旧的 Ionic-native/sqlite 数据库

问题描述 投票:0回答:2

我正在使用 @ionic-native/sqlite 4 为旧应用程序构建进行升级,以将其本地数据存储在 sqlite 数据库中。

我的新应用程序使用@capacitor-community/sqlite。

旧的数据库是这样创建的:

  this.sqlite.create({
    name: 'my.db',
    location: 'default'
  })

我已将旧应用程序放入模拟器中,我可以看到它确实在此路径下创建了文件:

/data/data/my-app-id/databases/my.db
我可以在Android Studio的设备文件浏览器中看到并访问这个文件。 当它执行此操作时,它会记录它在
/data/user/0/my-app-id/databases/my.db

打开了一个 sqlite 数据库

我不确定这些路径之间有什么区别。

新应用程序应该打开这个旧文件以导入旧用户数据。然而这不起作用。我的期望是,在安装新版本的应用程序作为更新后,它应该能够访问给定位置的文件。

我尝试使用电容器 sqlite 插件和 getNCCOnnection 来完成此操作。

但是尝试其中任何一个都会失败,告诉我该文件不存在:

  const oldDBPath = '/data/user/0/my-app-id/databases/my.db';
  const oldConnection = await this.sqliteService.createNCConnection(oldDBPath, 1);

  const oldDBPath = '/data/data/my-app-id/databases/my.db';
  const oldConnection = await this.sqliteService.createNCConnection(oldDBPath, 1);

  const oldDBPath = 'databases/my.db';
  const oldConnection = await this.sqliteService.createNCConnection(oldDBPath, 1);

为什么?

我还尝试使用电容器文件系统插件访问这些位置,但他们告诉我该目录不存在。

android sqlite ionic-framework
2个回答
1
投票

事实证明,我在代码中创建的路径名存在一些错误,这就是找不到该文件的原因。哎呀


0
投票

@Cola_Colin - 哪条路最终有效?我对 PouchDB Sqlite Ionic 也有类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.