【问题标题】:ionic 4 sqlite-ext not loading prepoluated atabaseionic 4 sqlite-ext 未加载预填充的数据库
【发布时间】:2020-03-19 04:05:14
【问题描述】:

我已按照所有示例说明如何执行此操作,但我无法让 cordova-sqlite-ext 工作。这是非常漫长的一周……我有一个简单的 SQLite 数据库,它已经过测试,可以在 SQLite 查看器中正常工作。我把它卡在了 www/ (也像其他 3 个地方一样祈祷我可以让它工作)。我的运气是0。当它肯定存在时,我总是得到“表数据不存在”的结果。

测试软件:Android 5.0.1

cordova plugin list:
cordova-plugin-dbcopy 2.1.2 "sqlDB"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.0.1 "cordova-plugin-ionic-webview"
cordova-plugin-is-debug 1.0.0 "IsDebug"
cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-ext 3.0.1 "Cordova sqlite storage plugin with extra features"
cordova-sqlite-storage 3.4.0 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
es6-promise-plugin 4.2.2 "Promise"
uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"
import { Platform } from '@ionic/angular';
import { Injectable } from '@angular/core';
//import { SQLitePorter } from '@ionic-native/sqlite-porter/ngx';
import { HttpClient } from '@angular/common/http';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';
import { BehaviorSubject, Observable } from 'rxjs';

export class DatabaseService {

private database: SQLiteObject;
private dbReady: BehaviorSubject = new BehaviorSubject(false);

constructor(private sqlite: SQLite,
private plt: Platform,
) {
this.startDatabase();
}

startDatabase(){

let options = {
  name: "asv.sqlite",
  location: 'default',
  createFromLocation: 1 
}

this.plt.ready().then(() => {
  this.sqlite.create(options).then((db: SQLiteObject) => {
    //this.database = db;
    db.executeSql('select distinct book_name from data', [])
    .then((data) => {
      console.log("Grabbed Books")
      console.log(data)
    });
    //this.seedDatabase(bible_version);
  })
  .catch(e => {
    console.error(e)
  });  
});
//});
}

注意:我已经能够通过将 sqlite 数据库转换为 SQL 数据库并使用 porter 将其转换来使其工作。但这显然是一种时髦的做事方式,因为当我可以预构建数据库时,我不想构建它。

还有。我尝试将数据库的名称更改为其他名称,并构建表,它工作正常。我能够收集一些我输入的虚假数据。

在单独的说明中。我正在尝试在我的 android 上的应用程序中找到此文件,如果它不在 www/ 中,默认将其放置在哪里?

更新:我发现确实在 data/data//database 文件夹中创建了一个数据库文件。我怎样才能让它在不使用 dbcopy 的情况下使用我的数据库! dbcopy 需要 android 8,这会切断 20% 的 android 用户(加上我的测试设备呵呵)

【问题讨论】:

    标签: android sqlite cordova ionic-framework ionic4


    【解决方案1】:

    我终于明白了。一周后,我在问问题后的第二天回答,哈哈。因此,对于未来的人,请检查您的包裹。我还安装了 sqlite-storage 的非 ext 版本,而我的应用程序正在使用该包。 " cordova-sqlite-storage 3.4.0 “Cordova s​​qlite 存储插件 - cordova-sqlite-storage” 我从 cordova(cordova 插件 rm cordova-sqlite-storage)中卸载并删除,它可以工作。呃

    Old Plugins:
    cordova plugin list:
    cordova-plugin-dbcopy 2.1.2 "sqlDB"
    cordova-plugin-device 2.0.2 "Device"
    cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
    cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
    cordova-plugin-ionic-webview 4.0.1 "cordova-plugin-ionic-webview"
    cordova-plugin-is-debug 1.0.0 "IsDebug"
    cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
    cordova-plugin-splashscreen 5.0.2 "Splashscreen"
    cordova-plugin-statusbar 2.4.2 "StatusBar"
    cordova-plugin-whitelist 1.3.3 "Whitelist"
    cordova-sqlite-ext 3.0.1 "Cordova sqlite storage plugin with extra features"
    cordova-sqlite-storage 3.4.0 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
    es6-promise-plugin 4.2.2 "Promise"
    uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"
    
    New Plugins:
    cordova-plugin-device 2.0.2 "Device"
    cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
    cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
    cordova-plugin-ionic-webview 4.0.1 "cordova-plugin-ionic-webview"
    cordova-plugin-is-debug 1.0.0 "IsDebug"
    cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
    cordova-plugin-splashscreen 5.0.2 "Splashscreen"
    cordova-plugin-statusbar 2.4.2 "StatusBar"
    cordova-plugin-whitelist 1.3.3 "Whitelist"
    cordova-sqlite-ext 3.0.1 "Cordova sqlite storage plugin with extra features"
    es6-promise-plugin 4.2.2 "Promise"
    uk.co.workingedge.cordova.plugin.sqliteporter 1.1.1 "sqlite porter"
    

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 2016-10-24
      • 2022-07-07
      • 2012-04-02
      • 2018-02-01
      • 2017-07-15
      • 1970-01-01
      • 2018-06-28
      相关资源
      最近更新 更多