2013-06-04 2 views
0

У нас есть автономное приложение для планшетов с использованием VSNomad (через Phonegap) с локальной базой данных Sqlite. Одна вещь, которую я заметил, это когда мы удаляем все данные из таблиц и удаляем таблицы (делая «перезагрузку приложения») на iPad, это не отражает, что пространство было открыто.Phonegap Sqlite Vacuum

Я столкнулся с командой «VACUUM» для Sqlite, однако я не уверен, как это сделать, если это можно использовать с нашей реализацией. Когда я попытался запустить его, я получаю сообщение об ошибке, которое не может работать внутри транзакции.

Вот примеры того, как мы реализации http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#Storage

 app.shared.db().transaction(function (tx) { 
      tx.executeSql('VACUUM', [], function (tx, results) { 
       alert('done'); 
      }, function (tx, error) { 
       alert('error'); 
       alert(error.message); 
      }); 
     }); 

Можно ли запустить вакуум, как это?

ответ

0

Я реализовал свой код и я получаю:

E/SQLiteQuery(18724): exception: not an error; query: VACUUM 

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

Но должен быть другой способ ... (смотря на это).

На данный момент у меня есть несколько предложений для управления базами данных:

  • Убедитесь, что вы можете удалить приложение и начать с новой базы данных (смотри ниже)
  • Предотвратить растет из базы данных: пустая таблица и не уронить таблица все время (transaction.executeSql('DELETE FROM tablename;');) Примечание: не используйте «*» знак
  • заселить вашу базу данных, если это первый запуск, см: http://mebefreelancer.wordpress.com/2012/08/14/phonegap-if-database-exists-do-something-else-populate-database/
  • Попробуйте настроить приложение таким образом, база данных является мигрировало красивым способом: см. enter link description here (джанго/южный вид пути миграции)
Смежные вопросы