2016-03-06 8 views
0

Я создал базу данных SQLite с моим титановым приложением. Когда я использую его в своем приложении (титановый сплав), он идет хорошо.Мое устройство Android не получило новых добавленных данных таблицы feild после обновления моего приложения титанового андроида

После того, как я вставил новое поле в таблицу с менеджером SQLite, новые добавленные данные поля не появляются в приложении после обновления моего приложения с более новой версией. Эта проблема произошла только с моим устройством Android, в IOS, хорошо работает.

Как я должен сделать для андроида титана, чтобы при обновлении приложения он также обновил базу данных SQlite, извлекая недавно добавленное поле из базы данных? Если я удалю текущее приложение и установлю приложение снова, тогда он будет работать нормально, но я не хочу удалять приложение. Я просто хотел бы обновить приложение. Просьба прокомментировать ваши предложения

ответ

1

Android при обновлении приложения База данных SQLite не будет перезаписываться. Он будет использовать старый SQLiteDB. Если вы добавите новое поле в приложение БД, оно будет извлекаться из старого SQLiteDB.

Чтобы решить эту проблему:

  • версия базы данных Использование SQLite. Если версия БД является новой, необходимо использовать ALTER таблицу во время выполнения.
  • Первая версия: db.execute('PRAGMA user_version = 1');
  • Вторая версия: db.execute('PRAGMA user_version = 2');
  • Проверить версию перед обращением к таблице: db.execute('PRAGMA user_version');

Другой способ: Копировать DB и Rename DB место его в том же месте в использовании кода новое имя БД. Ti.Database.open ('newDBName'). Это не очень хороший подход.

var checkDBVersion = function() { 
var db = Ti.Database.open(DATABASE_NAME); 
var rows = db.execute('PRAGMA user_version'); 
var dbVersion = 0; 
if (rows.isValidRow()) { 
    dbVersion = rows.fieldByName('user_version'); 
} 
db.close(); 
return dbVersion;}; 

Объявляет версию Current DB, как вар DBVersion = 2.

if(DBVersion!=checkDBVersion()){ //Write your alter query for Table } 

Всякий раз, когда ваше приложение изменения БД для дальнейшего выпуска приложения необходимо обновить переменную DBVersion.

+0

Привет Venkatesh, Как я могу проверить из титанового кода текущую версию SQL-кода sqlite и на основе этой таблицы ALTER? Если возможно, вы можете предоставить некоторые строки кода. ? Спасибо –

+0

Отредактировал свой ответ. Пожалуйста, проверьте, что это может быть полезно для вас. – Venkatesh

 Смежные вопросы

  • Нет связанных вопросов^_^