Dal database web (PostgreSQL) al mobile (SQLite)

1

La mia azienda impiega persone che aggiungono e modificano record in un database PostgreSQL utilizzando un'interfaccia web. Questi aggiornamenti devono quindi essere compilati in un'app mobile (Android, iOS) tramite SQLite e rilasciati come una nuova versione ogni pochi mesi. Non siamo ancora riusciti a "hot patching" del database SQLite; vale a dire scaricando gli aggiornamenti dal server invece di ricompilare l'app con i nuovi dati scaricati durante il processo di compilazione.

Mi chiedo quale sia il processo tipico qui - come ottenere da un server all'altro. Il mio pensiero iniziale è quello di scrivere uno script per:

  1. scarica i dati (come JSON) che devono essere compilati nell'app
  2. usa la libreria SQLite per costruire il database e importare i dati
  3. comprimi / crittografa il database
  4. inserisci il database nella cartella di asset corretta per iOS e Android

Sembra un approccio ragionevole, ma mi chiedo se c'è un modo migliore, o se c'è qualche processo che è più standard. Ci sono avvertenze per questo approccio?

E so che potrei esporlo ai clienti tramite un'API REST. Questo è fondamentalmente quello che sto facendo per l'aspetto del "download". Tuttavia, questo non è ciò che il capo vuole fare, quindi questo è il modo in cui deve essere. Sto chiedendo se il mio approccio (scaricare un'esportazione JSON, importare quei dati, ecc.) Sia un approccio decente, o se ad es. scaricando tramite psql e facendo un po 'di magia con questi dati) sarebbe meglio per ciò che dovevo realizzare: ottenere i dati PostgreSQL dal web in un database SQLite locale.

    
posta Chris Cirefice 03.01.2017 - 20:18
fonte

1 risposta

1

However, that's not what the boss wants to do, so this is the way it has to be.

È una strada pericolosa che stai percorrendo. Si prega di inserire metriche e registrazione. Assicurati che questo sia un miglioramento. Raramente ho visto le app lavorare più velocemente perché i capi hanno fatto le scelte tecniche.

Ecco i miei (male messi) due centesimi:

My initial thought is to write a script to:

  1. download the data (as JSON) that needs to be compiled into the app
  2. use the SQLite library to construct the database and import the data
  3. compress/encrypt the database
  4. put the database in the correct asset folder for iOS and Android

Questa non è una cattiva idea, ma raccomanderei piuttosto di crittografare l'intero database, provare a crittografare le singole voci. Ci sono meno possibilità di corruzione a causa della crittografia. Assicurati che la tua decrittazione / crittografia sia sicura e non esposta ai vettori di attacco. Includere il controllo delle versioni e le fallback in modo che, in caso di errore, si possa essere un po 'più resilienti.

Inoltre, piuttosto che scrivere uno script in qualsiasi lingua ti piaccia, scrivi qualcosa in Java o C #, quindi quando arriva il momento di passare alle 'hot patching', queste sono meno utili da fare.

    
risposta data 04.01.2017 - 03:06
fonte

Leggi altre domande sui tag