【问题标题】:Where to place pre loaded db file in Ionic 2 RC0在 Ionic 2 RC0 中放置预加载的 db 文件的位置
【发布时间】:2016-10-05 11:38:36
【问题描述】:

我正在使用 sqlite cordova ext 插件来处理预填充的 sqlite 数据库。

使用 Ionic 2 的新 RC0,每次构建时都会完全重建 www 文件夹。 以前您会将 db 文件留在 www 目录中,因为这是插件默认读取的位置,但现在它们会删除并重建整个 www 文件,并且不会将 src 文件移动到 www。

那么有没有一种新方法可以在构建后将此 db 文件复制到 www 文件夹中/防止它在构建或任何其他解决方法中被删除?

错误:没有错误处理程序的语句失败:sqlite3_prepare_v2 失败:没有这样的表:Table_Name(...)

我的 sqlite ext 插件配置

this.db.openDatabase({
  name: 'example.db',
  location: 'default', // the location field is required
  createFromLocation: 1,
  existingDatabase: true,
});

【问题讨论】:

    标签: sqlite cordova ionic-framework ionic2


    【解决方案1】:

    1) 我安装了 cordova-sqlite-ext 插件

    2) 在 app.component.ts 我导入了import { SQLite } from 'ionic-native';

    3) 在我插入的platform.ready()中:

    let db = new SQLite();
          db.openDatabase({
            name: "data.db",
            location: "default",
            createFromLocation: 1
          }).then(() => {
            db.executeSql("SELECT * from config", []).then((data) => {
              console.log("Data received: ", data);
            }, (error) => {
              console.error("Unable to execute sql", error);
            })
          }, (error) => {
            console.error("Unable to open database", error);
          });
    

    4) 我在 package.json 的同一路径创建了一个名为 copy.config.json 的文件并插入:

    module.exports = {
        include: [
            {
                src: 'src/assets/',
                dest: 'www/assets/'
            },
            {
                src: 'src/index.html',
                dest: 'www/index.html'
            },
            {
                src: 'src/data.db',
                dest: 'www/data.db'
            },
            {
                src: 'src/service-worker.js',
                dest: 'www/service-worker.js'
            },
            {
                src: 'node_modules/ionic-angular/polyfills/polyfills.js',
                dest: 'www/build/polyfills.js'
            },
            {
                src: 'node_modules/ionicons/dist/fonts/',
                dest: 'www/assets/fonts/'
            },
        ]
    };
    

    5) 在我插入的文件 package.json 中:

    "config": {
        "ionic_copy": "./copy.config.js"
      },
    

    在最后一行之前"description": "SqlProject: An Ionic project"

    来自:Where to put SQLite databases on Ionic 2 RC0? 作者:morris4ever69

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      相关资源
      最近更新 更多