ionic 3 sqlite - Как выполнять запросы из файлов - PullRequest
0 голосов
/ 25 сентября 2018

В настоящее время я занимаюсь разработкой мобильного приложения с ионным интерфейсом.В этом приложении есть локальная база данных sqlite.

Я ищу возможность выполнять запросы из файлов на предмет возможных обновлений базы данных.

Например, при первой установке приложениятаблицы создаются, если они не существуют.Если в эти таблицы вносятся изменения после установки приложения, они не учитываются.

Я хотел бы создать файлы, которые могут выполняться по одному в соответствии с PRAGMA user_version.

Что-то вроде:

// Get pragma user version, if it's undefined, it's set to 1.
// If user_version < 1, we execute the sql file, then we update the user_version 
// to 1.
db.executeSql(`PRAGMA user_version;`, []).then((res)=> {
    if(res.rows.item(0).user_version < 1) {
          db.sqlBatch(`app/sqlFiles/1.sql`, []).then((res)=>{
              console.log(res);
          }, (err) => {
              console.log("Error : " + JSON.stringify(err));
          });
          db.executeSql(`PRAGMA user_version = 1;`, []).then((res)=>{
              console.log(res);
          }, (err) => {
              console.log("Error : " + JSON.stringify(err));
          });
        }
    }, (err) => {
        console.log("Error : " + JSON.stringify(err));
    });

Я думал об использовании программы чтения файлов, но файл не найден во время выполнения функции.

this.fileOpener.open('assets/SQLFile/1.sql', 'text/plain')
    .then((file) => {
        var reader = new FileReader();
        reader.onloadend = function(evt) {
            console.log("read success");
            console.log(evt.target);
        };

        db.sqlBatch(reader.readAsText(file)).then((res)=>{
            console.log(res);
        }, (err) => {
            console.log("Error : " + JSON.stringify(err));
        });

        console.log('File is opened');
    })
    .catch(e => console.log('Error opening file', e));

У кого-нибудь будет идея сделать этот видвещи?(Я ищу решение, которое учитывает передовые методы программирования).

Обратите внимание, что я новичок в ионных и sqlite Заранее спасибо!

1 Ответ

0 голосов
/ 26 сентября 2018

Но вы получаете ошибку или что?Так как публикация кажется верной, но реализация кажется немного неработоспособной.
После прочтения файла, сохранения содержимого в переменной, вы должны выполнить этот «sql запрос» как обычно.
Тем не менее, это небезопасный способ сделать это.

Когда что-то в вашем приложении изменится из-за обновления или обновления, было бы проще и безопаснее указать это в коде, а не в одном файле, содержащем всю информацию и схему базы данных?

Отредактировано:

Если вы хотите добавить пользовательские файлы в развертывание, отметьте это https://ionicframework.com/docs/developer-resources/app-scripts/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...