Gestione del database con Sinatra

Una volta che la nostra applicazione web è definita e sappiamo già cosa dobbiamo ottenere, molte volte è necessario ottenere una forma di persistenza dei dati, questo si traduce nel memorizzare i dati da essa ottenuti da qualche parte e quindi utilizzarli e questo è ciò che rende il database motori per noi

Avere poi la necessità che i nostri dati persistano nelle applicazioni, è quando dobbiamo cercare o capire come gestire queste operazioni e anche se può sembrare complesso oggi ci sono molti strumenti che facilitano il nostro lavoro, ad esempio ci sono i ORM che ci danno la possibilità di creare strutture indipendenti dal motore in modo da non scrivere quasi mai una query pura.

In caso di Sinatra Ci sono diverse gemme che si occupano già delle connessioni e dell'amministrazione dei Database, quindi vedremo cosa sono e come possiamo integrarle nella nostra applicazione.

Scegli il motore di database


Il primo passo che dobbiamo fare è scegliere il motore Database giusto per la nostra applicazione, ci sono molte soluzioni sul mercato e ognuna con uno scopo diverso, nel caso di Sinatra useremo generalmente MySQL o PostgreSQL in un ambiente di produzione, o in caso contrario SQLite negli ambienti di sviluppo.

Nel caso di questo tutorial, abbiamo optato per l'ultima opzione per la sua facilità di installazione e la velocità con cui possiamo iniziare a lavorare.

Installazione di SQLite


Per installare questo motore, prima di tutto andiamo sul suo sito Web ufficiale e scarichiamo il pacchetto corrispondente al nostro sistema, molte distribuzioni in Linux Sono già dotati di questo motore installato e funzionante, quindi vedremo come eseguire questo processo in finestre.

Nell'immagine precedente vediamo che dobbiamo scaricare i binari precompilati, una volta fatto ciò li decomprimeremo in una cartella chiamata SQLite nel nostro drive C: e aggiungiamo quella cartella come variabile d'ambiente nel nostro IL PERCORSO. Una volta fatto quanto sopra durante la scrittura sqlite3 nella nostra console dovremmo vedere qualcosa di simile al seguente.

Una volta completato questo passaggio, dobbiamo ora scaricare il driver corrispondente per Rubino, ecco perché nella nostra console dei comandi dobbiamo scrivere quanto segue:

 gem install sqlite3
Questo dovrebbe darci un risultato come il seguente che indica che l'installazione della gemma è andata a buon fine per connettersi a SQLite.

L'ORM


Poiché abbiamo il nostro motore di database, ora è il turno di ottenere il ORMQuesto è uno strumento che ci permette di convertire le tabelle di un Database in oggetti, in questo modo possiamo lavorare con loro nella nostra applicazione più facilmente.

VantaggioIl principale vantaggio di ORM è che ci permette di essere indipendenti dal motore, poiché non avendo bisogno di scrivere direttamente il codice SQL possiamo semplicemente cambiare la configurazione ed effettuare le migrazioni corrispondenti.

Ovviamente ci sono molte opzioni con cui lavorare Rubino e con Sinatra, tuttavia uno dei più amichevoli per iniziare è DataMapper.

Installa DataMapper


L'installazione di questo ORM Non potrebbe essere più semplice, e questo grazie al fatto che è anche un gioiellino, quindi non ci resta che eseguire un paio di istruzioni nella nostra console, la prima è la seguente che ci aiuta a ottenere il componente base:
 gem install data_mapper
Questo dovrebbe produrre un risultato simile al seguente:

Ora che abbiamo la base, dobbiamo semplicemente installare il driver in modo che DataMapper può interagire con SQLite, per questo dobbiamo installare la seguente gemma:

 gem install dm-sqlite-adapter
Questo è ciò che consentirà alle nostre applicazioni di creare tabelle e utilizzare il Database senza dover scrivere codice SQL.Alla fine, l'installazione del driver dovrebbe darci il seguente messaggio nella nostra console.

Connettiti a un database


Poiché abbiamo installato le dipendenze, ciò che dobbiamo fare ora è procedere a testare come funziona il nostro nuovo ambiente di persistenza dei dati, per questo creeremo una classe. Questa classe sarà la base che ci permetterà di creare una tabella e memorizzare i record in essa, questo ci dà anche l'opportunità di non dover scrivere codice SQL direttamente, in modo che in futuro, quando dovremo utilizzare un altro motore di database, sarà sufficiente modificare semplicemente la configurazione.

Nella nostra cartella dell'applicazione creeremo un file chiamato canzoni.rb, quello che deve fare questa classe è avere la mappa di come possiamo memorizzare una canzone nel Database, vediamo il contenuto e poi spieghiamo cosa fa ogni sezione di essa:

 require 'dm-core' require 'dm-migrations' DataMapper.setup (: default, "sqlite3: // # {Dir.pwd} /musica.db") class Le canzoni includono DataMapper :: Proprietà risorsa: id, proprietà Serial: title, proprietà String: duration, proprietà Integer: release_date, Data di fine DataMapper.finalize
Prima di tutto dobbiamo fare il richiedere dei componenti chiave di DataMapper in questo caso dm-coredm-migrazioni. Quindi creiamo una riga di configurazione che è quella che ci consente di utilizzare in primo luogo SQLite per creare immediatamente il file, in questo caso musica.dbSe il file esiste già, significa che il database esiste già, quindi la connessione verrebbe semplicemente effettuata.

Finalmente facciamo la nostra lezione canzoni che conterrà una serie di attributi che lo identificano e l'inclusione di un'altra classe di DataMapper. Con questo, siamo pronti per la fase successiva, che consiste nel testare la nostra applicazione. Poiché non abbiamo creato nulla da vedere nel nostro browser, è un buon momento per utilizzare il Console interattiva Ruby (irb), che ci permetterà di verificare che tutto sia per il verso giusto, oltre a permetterci di abituarci al DataMapper.

Prova la nostra app


Prima di tutto nel nostro terminale o console dobbiamo andare nella cartella in cui abbiamo archiviato il nostro file canzoni.rb poiché questa è la chiave per sviluppare il nostro esempio, una volta lì dobbiamo avviare la nostra console interattiva Rubino digitando il comando:
 irb
Una volta avviato, possiamo fare il richiedere della nostra classe inserendo il comando:
 richiedono "./canzoni"
Questo deve restituire true se ha esito positivo, come possiamo vedere nell'immagine seguente.

Il prossimo atto dobbiamo usare lo strumento auto_migrate di DataMapper, questo ci permetterà di creare la tabella con gli attributi della nostra classe nel file Database corrispondente. Per questo scriviamo semplicemente quanto segue:

 Songs.auto_migrate!
Che crea la struttura necessaria per poter archiviare i record.

Crea la nostra prima canzone


Ora quello che dobbiamo fare è creare l'oggetto che ci permetterà di memorizzare i valori necessari nel Database, per questo creeremo un oggetto chiamato canzone:
 song = Songs.new
Per memorizzarlo successivamente con il seguente comando:

Questo ci fornisce già una piattaforma di base per includere le informazioni nel nostro Database, vediamo cosa dovrebbe mostrare la console a questo punto:

Fatto ciò, possiamo memorizzare i dati per esso. Mentre siamo ancora nella nostra console, aggiungeremo gli attributi del nostro oggetto uno per uno, vediamo:

 song.title = "Nuovo brano" song.duration = "315" song.release_date = Date.new (2010) song.save
Ciascuna delle istruzioni precedenti stava memorizzando nell'oggetto song ed eseguiva il metodo Salva tutto questo è memorizzato nel Database. Vediamo nell'immagine seguente il processo che abbiamo effettuato.

Notiamo anche che Rubino è che tiene conto del maiuscolo o minuscolo quindi dobbiamo stare attenti a come scriviamo le nostre classi, poiché nel caso della console c'è stato un errore durante la scrittura della classe Data, da quando è stata scritta la data, che è stata rilevata immediatamente. Infine, se vogliamo consultare le canzoni memorizzate, è sufficiente scrivere la seguente istruzione:

 Canzoni.all
Possiamo anche rendere conto di quanti record abbiamo con quanto segue.
 Songs.count
Per finire, vediamo la risposta ricevuta nella nostra console durante l'esecuzione di questi due comandi.

Abbiamo inserito il nostro primo record e l'abbiamo consultato con successo, imparando così ad usare il Database con Sinatra, anche se i più attenti potrebbero aver capito che tutto ciò che abbiamo fatto è stato in Rubino, e questa è stata la grande idea, per dimostrare come sapere Rubino possiamo lavorare con Sinatra senza avere molte complicazioni.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave