将预加载的db文件放在Ionic 2 RC0中的位置

时间:2016-10-05 11:38:36

标签: sqlite cordova ionic-framework ionic2

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

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

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

  

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

我的sqlite ext插件配置

<?php 

$this->registerJs(' 
    setInterval(function(){  
         $.pjax.reload({container:"YOUR_PJAX_CONTAINER_ID"});
    }, 10000);', \yii\web\VIEW::POS_HEAD); 
?>

1 个答案:

答案 0 :(得分:0)

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