Vai al contenuto

ALTER TABLE su controllo versione APP

La funzione di createDb innescata dal controllo di versione e' stata sostituita con la nuova funzione alterDb. Dopo ogni aggiornamento dell'APP, al primo accesso verra' innescata la seguente funzione per effettuare le varie modifiche alle tabelle, basandosi sulla vecchia versione precedentemente installata.

async function alterDb(old_version) {
  console.log("La vecchia versione è " + old_version);
  const downloads = [];
  switch (true) {
    case old_version < Version("7.18.00"):
      console.log("crea db --> versione minore 7.18");
      await clearDb();
      await createDb();
      break;
    // #region 7.19.00
    case old_version < Version("7.19.00"):
      console.log("minore di 7.19.00");
      await alterV_7_19_00();
      downloads.push(...download7_19_00());
    //#endregion
    case old_version < Version("7.20.00"):
      console.log("minore di 7.20.00");
    case old_version < Version("7.20.01"):
      console.log("minore di 7.20.01");
      break;
  }
  if(downloads.length>0) {
    downloads.push(new Promise(resolve => {setTimeout(resolve,1000);}));
  }
  await Promise.all(downloads);
}

Se old_version e' < 7.18.00, versione minima richiesta per essere sicuri che il db interno sia allineato, verra' effettuata la vecchia procedura di createDb. Se old_version > 7.18.00, verranno effettuate in cascata le varie modifiche al db, fino ad arrivare alla versione corrente presente sullo store.

Casistiche

  • aggiornamento tabella con inserimento id_sincro: si inserira' nella tabella SYNC la nuova voce di quel sync con valore -1, in questo modo l'app scarichera' tutti i dati (compresi i cancellati) e andra' ad aggiornare i dati gia' presenti sul DB locale
  • aggiornamento tabella senza id_sincro (raro): oltre all'alter della tabella, non saranno da effettuare altre operazioni, dato che la funzione di download/aggiornamento dati home fa gia' delete e riscarica tutti i dati
  • aggiornamento tabella con id_sincro: oltre all'alter della tabella, dovra' essere richiamata la funzione di download che preparera' la call al demone in KPN per scaricare i dati delle nuove colonne e effettuera' UPDATE delle colonne stesse
  • creazione nuova tabella: si dovra' effettuare la CREATE TABLE nello stesso modo in cui sara' creata in createDb. Non e' necessario aggiornare id_sincro dato che e' una tabella nuova ed e' corretto che scarichi tutti i dati non cancellati

Estratto da documentazione interna ClickUp