In questo articolo vedremo insieme come modificare lo schema Realm. Per essere precisi dovremmo dire “come migrare uno schema Realm”, comunque il punto è proprio quello. Abbiamo bisogno, un po’ avviene già con l’utilizzo di flyway, di avere qualcosa che mantenga la versione dello schema. Nel caso di Realm oltre tutto è obbligatorio modificare lo schema in questo modo.
Questa guida fa parte di un percorso ben più ampio che si intitola React Native: Come creare un’app Android e iOS da zero. Stiamo creando una piccola app insieme, ma non ti preoccupare. Quanto vedremo in questa guida è facilmente applicabile anche su applicazioni diverse.
Come modificare lo schema Realm
Per modificare lo schema Realm e fare una migrazione è necessario che apri il file database.js. Questo è il nome che abbiamo dato al file in grado di creare lo schema e di ritornarci un repository. In questo file andremo ad applicare il famoso schema version.
Prima di capire come migrare uno schema Realm devi sapere che di default la schema version applicata da Realm è la versione 0. Dunque una volta che si vogliono apportare cambiamenti al database il nuovo parametro che andremo ad inserire diventerà obbligatorio. La schema version è quindi obbligatoria dal momento in cui si vuole modificare uno schema esistente e seguirà una numerazione a partire da 1.
Per maggiori informazioni puoi rivolgerti alla guida di Realm a questo indirizzo.
Aggiungere una tabella
Quello che vogliamo fare nel prossimo articolo è salvarci il percorso della foto che andiamo a scattare sul database. Supponiamo che sia un’immagine relativa alle impostazioni utilizzabile in tutta l’app.
Quello che possiamo fare è creare una tabella Settings che conterrà alcuni valori tutti su una riga. Questo ovviamente è un approccio molto semplice e veloce da spiegare. Un’alternativa che preferisco è avere una tabella Settings dove ogni record è una coppia chiave/valore.
Dunque la nostra tabella Settings dovrà avere un record costituito da un id e dal campo photoPath che conterrà il percorso della foto scattata. Siamo pronti per capire come modificare lo schema Realm.
La Tabella Settings
Apri il file database.js e modificalo rimpiazzando il codice esistente con questo:
import Realm from 'realm'; let repository = new Realm({ schema: [ { name: 'People', primaryKey: 'id', properties: { id: {type: 'string', indexed: true}, name: 'string', surname: 'string' } }, { name: 'Settings', primaryKey: 'id', properties: { id: {type: 'string', indexed: true}, photoPath: 'string' } } ], schemaVersion:1 }); let Database = { getRepository: function(){ console.log("db path: ", repository.path); return repository; } }; module.exports = Database;
Come puoi vedere abbiamo aggiunto la tabella con nome Settings ed, alla chiusura delle parentesi quadre, abbiamo aggiunto la proprietà schemaVersion con valore 1. Da questo momento in poi, per ogni tipo di modifica, andremo ad incrementare questo numero.
Conclusioni
Nell’articolo precedente abbiamo visto come scattare foto con react-native-camera ed ora abbiamo visto come modificare lo schema Realm. Il prossimo passo sarà quello di salvare il percorso della nostra foto sul database così da non perdere il riferimento e dunque di salvare la foto su Firebase Storage.
Su Udemy puoi trovare tanti corsi interessanti nei riguardi di React Native:
- The Complete React Native and Redux Course
- React Native: Advanced Concepts
- Create your first React Native App
Non ti perdere quindi la guida salvandoti il link alla guida per imparare React Native.
Se sei interessato continua a seguirmi, magari iscriviti alla newsletter così da non dimenticarti di questa guida. Nel caso in cui ancora non ti senti pronto con React puoi sempre seguire questa guida e poi potrai imparare React Native.
Se vuoi rimanere aggiornato sul continuo di questa guida ti consiglio di iscriverti alla newsletter. Mando da 1 a 4 mail al mese e normalmente invio risorse gratuite e riservate solo agli iscritti. Invio anche la lista degli articoli di maggiore impatto, come questo. Se non troverai gli articoli potrai recuperarli dalla mail in questo modo ?
Per dubbi o domande non esitare a scrivermi nei commenti ?
Se ti è piaciuto l’articolo seguimi su Facebook e Twitter oppure rimani sempre aggiornato con la newsletter (da 1 a 4 mail al mese!).