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

Во-первых, вам нужно создать базу данных. Вы можете сделать это, создав файл в папке lib. Я называю это db.js, вот содержание:

module.exports = Ti.Database.open(‘databaseName’);

Затем создайте еще один файл в папке lib и назовите его install.js

(function(){
var db = require('db');
/**
   * var _exports
   *
   * @return {type}
   */
  var _exports = function(){
      var version = Ti.App.Properties.getInt('versionDatabase'),
          versionOrigine = version;
      if(!version){
          version = 0;
      }
      if(version < 1){
          Ti.App.Properties.setBool('isConnected', false);
          db.execute('CREATE TABLE IF NOT EXISTS variable (id INTEGER PRIMARY KEY AUTOINCREMENT, key_ VARCHAR(255) NOT NULL, value TEXT NULL)');
          version = 1;
      }
      if(version > versionOrigine){
          Ti.App.Properties.setInt('versionDatabase', version);
      }
  };
  module.exports = _exports;
})();

В этом файле вы можете видеть, что я получил свойства под названием versionDatabase. При первой установке эта переменная имеет значение null, поэтому я установил для нее значение version = 0. Первое условие будет выполнено после установки. Как видите, я делаю две вещи:

  1. Создайте логическое значение isConnected и установите для него значение false. Чтобы определить, подключен пользователь или нет.
  2. Я выполняю запрос SQLite для создания таблицы с именем переменная. Я использую эту таблицу для хранения постоянных свойств.
  3. Я установил для переменной версия значение 1.

Заявление после полезно для сохранения текущей версии вашего приложения. Теперь, если вы перезапустите приложение, этот файл будет вызываться, но ваша переменная версии будет равна 1, поэтому ничего не будет.

Что дальше, если вам нужно опубликовать новую версию приложения?

В следующей версии вам нужно отредактировать файл install.js и добавить новый оператор, подобный этому:

if(version < 2){
//do anything you want, add new table, add new fields on existing table, execute some script
  version = 2;
  
}

Еще кое-что. Вам нужно вызвать ваш файл install.js в файле сплава .js:

require('install')();

И вуаля!

Вы можете найти весь код здесь:

Обо мне

Я французский разработчик мобильных устройств. Я использую Axway Appcelerator с 2012 года, и мне это нравится! Я технический директор мобильного агентства Squirrel.fr в Париже и на острове Реюньон и официальный партнер Axway.