#sqlite #cordova #ionic-framework #ionic2
#sqlite #кордова #ionic-framework #ionic2
Вопрос:
Я использую плагин sqlite cordova ext для работы с предварительно заполненной базой данных sqlite.
С новым RC0 Ionic 2 папка www полностью перестраивается при каждой сборке. Раньше вы оставляли свой файл БД в каталоге www, поскольку это расположение плагинов по умолчанию для чтения, но теперь они удаляют и перестраивают весь файл www и не перемещают файлы src в www.
Итак, есть ли новый способ скопировать этот файл БД в папку www после сборки / предотвращения его удаления при сборке или любой другой обходной путь?
Ошибка: ошибка оператора без обработчика ошибок: сбой sqlite3_prepare_v2: нет такой таблицы: имя_таблицы (…)
Моя конфигурация плагина sqlite ext
this.db.openDatabase({
name: 'example.db',
location: 'default', // the location field is required
createFromLocation: 1,
existingDatabase: true,
});
Ответ №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) Я создаю файл с именем copy.config.json по тому же пути, что и package.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"
.
Это взято из: Куда поместить базы данных SQLite в Ionic 2 RC0?автор: morris4ever69