Как воссоздать базу данных sqlite в ionic v3?

#sqlite #ionic3

#sqlite #ionic3

Вопрос:

Я использую sqlite с ionic v3. Проблема в том, что когда я удаляю базу данных sqlite и воссоздаю ее заново, она выдает ошибку No such table table1 .

 this.sqlite.deleteDatabase({
        name: 'db.db',
        location: 'default'
      })
       .then(() => {
           return this.sqlite.create({
             name: 'db.db',
             location: 'default'
           })
       })
       .then((db: SQLiteObject) => {
        // create table queries
       });
  

Комментарии:

1. Почему вам нужно удалить db, я смотрю, они одинаковые

2. Я хочу стереть все данные.

3. на самом деле лучше всего, если вы удалите table

4. Если я удалю и воссоздам все таблицы, проблема в том, что предыдущие данные существуют до тех пор, пока я не закрою приложение в фоновом режиме и не открою снова. В моем приложении я хочу удалить все данные при выходе из системы и создать заново при входе в систему.

5. Прежде всего, вам нужно создать service for table для всех типов операций с базой данных, затем, когда вы захотите выйти из системы, удалите table по службам.

Ответ №1:

потому что вы только создаете базу данных. вам нужно создать таблицу после создания базы данных

ваш код выглядит следующим образом

 this.sqlite.deleteDatabase({
        name: 'db.db',
        location: 'default'
      })
       .then(() => {
           return this.sqlite.create({
             name: 'db.db',
             location: 'default'
           })
       })
       .then((db: SQLiteObject) => {
        // create table queries
             db.executeSql('create table table1(name VARCHAR(32))', {})
            .then(() => console.log('Executed SQL'))
            .catch(e => console.log(e));
         }); 
       });