Gestion de base de données avec Sinatra

Une fois que notre application web est définie et que nous savons déjà ce que nous devons réaliser, il est souvent nécessaire de réaliser une forme de persistance des données, cela se traduit par le stockage des données obtenues par elle quelque part puis par son utilisation et c'est ce qui fait la base de données moteurs pour nous.

Ayant alors besoin que nos données persistent dans les applications, c'est quand nous devons chercher ou comprendre comment gérer ces opérations et bien que cela puisse sembler complexe aujourd'hui, il existe de nombreux outils qui facilitent notre travail, par exemple il y a le ORM qui nous donnent la possibilité de créer des structures indépendantes du moteur de sorte que nous n'écrirons presque jamais une requête pure.

Dans le cas d Sintra Il existe plusieurs joyaux qui sont déjà en charge des connexions et de l'administration des bases de données, nous allons donc voir ce qu'ils sont et comment nous pouvons les intégrer dans notre application.

Choisissez le moteur de base de données


La première étape que nous devons faire est de choisir le bon moteur de base de données pour notre application, il existe de nombreuses solutions sur le marché et chacune avec un objectif différent, dans le cas de Sintra on utilisera généralement MySQL ou alors PostgreSQL dans un environnement de production, ou à défaut SQLite dans les environnements de développement.

Dans le cas de ce tutoriel, nous avons opté pour la dernière option en raison de sa facilité d'installation et de la rapidité avec laquelle nous pouvons commencer à travailler.

Installation de SQLite


Pour installer ce moteur, nous allons tout d'abord sur son site officiel et téléchargeons le package correspondant à notre système, de nombreuses distributions en Linux Ils sont déjà livrés avec ce moteur installé et fonctionnel, nous verrons donc comment effectuer ce processus dans les fenêtres.

Dans l'image précédente, nous voyons que nous devons télécharger les binaires pré-compilés, une fois cela fait, nous allons les décompresser dans un dossier appelé SQLite dans notre lecteur C: et nous ajoutons ce dossier en tant que variable d'environnement dans notre CHEMIN. Une fois ce qui précède est fait lors de l'écriture sqlite3 dans notre console, nous devrions voir quelque chose comme ce qui suit.

Une fois cette étape franchie, il faut maintenant télécharger le pilote correspondant pour Rubis, c'est pourquoi dans notre console de commande, nous devons écrire ce qui suit :

 gem installer sqlite3
Cela devrait nous donner un résultat comme le suivant indiquant que l'installation de la gemme a réussi afin de se connecter à SQLite.

L'ORM


Puisque nous avons notre moteur de base de données, c'est maintenant au tour d'obtenir le ORMIl s'agit d'un outil qui nous permet de convertir les tables d'une base de données en objets, de cette manière, nous pouvons travailler plus facilement avec eux dans notre application.

AvantageLe principal avantage de ORM c'est qu'il nous permet d'être indépendant du moteur, puisqu'en n'ayant pas besoin d'écrire du code SQL directement on peut simplement changer la configuration et faire les migrations correspondantes.

Bien sûr, il existe de nombreuses options pour travailler avec Rubis et avec Sintra, cependant l'un des plus sympathiques pour commencer est DataMapper.

Installer DataMapper


L'installation de ce ORM Cela ne pourrait pas être plus simple, et cela grâce au fait qu'il s'agit également d'un joyau, nous devons donc simplement exécuter quelques instructions dans notre console, la première est la suivante qui nous aide à obtenir le composant de base :
 gem installer data_mapper
Cela devrait produire un résultat similaire au suivant :

Maintenant que nous avons la base, nous devons simplement installer le pilote pour que DataMapper peut interagir avec SQLite, pour cela nous devons installer le gem suivant :

 gem install dm-sqlite-adapter
C'est ce qui permettra à nos applications de créer des tables et d'utiliser la base de données sans avoir à écrire de code SQL. A la fin, l'installation du pilote devrait nous donner le message suivant dans notre console.

Se connecter à une base de données


Puisque nous avons installé les dépendances, nous devons maintenant tester le fonctionnement de notre nouvel environnement de persistance des données. Pour cela, nous allons créer une classe. Cette classe sera la base qui nous permettra de créer une table et d'y stocker des enregistrements, cela nous donne également la possibilité de ne pas avoir à écrire de code SQL directement, de sorte qu'à l'avenir, lorsque nous devrons utiliser un autre moteur de base de données, il suffira de modifier simplement la configuration.

Dans notre dossier d'application, nous allons créer un fichier appelé chansons.rb, ce que cette classe doit faire est d'avoir la carte de la façon dont nous pouvons stocker une chanson dans la base de données, voyons le contenu et expliquons ensuite ce que fait chaque section de celle-ci :

 nécessite 'dm-core' nécessite 'dm-migrations' DataMapper.setup (: par défaut, "sqlite3: // # {Dir.pwd} /musica.db") class Les morceaux incluent DataMapper :: Propriété de ressource : id, propriété Serial : title, propriété String : durée, propriété Integer : release_date, Date end DataMapper.finalize
Tout d'abord, nous devons faire le exiger des éléments clés de DataMapper dans ce cas dm-core Oui dm-migrations. Ensuite, nous créons une ligne de configuration qui est celle qui nous permet d'utiliser en premier lieu SQLite pour créer immédiatement le fichier, dans ce cas musique.dbSi le fichier existe déjà, cela signifie que la base de données existe déjà, donc la connexion serait simplement établie.

On fait enfin notre classe Chansons qui contiendra une série d'attributs l'identifiant et l'inclusion d'une autre classe de DataMapper. Avec cela, nous sommes prêts pour la phase suivante, qui consiste à tester notre application. Comme nous n'avons rien créé à voir dans notre navigateur, c'est le bon moment pour utiliser le Console interactive Ruby (irb), ce qui nous permettra de vérifier que tout est sur la bonne voie, en plus de nous permettre de nous habituer à la DataMapper.

Essayez notre application


Tout d'abord dans notre terminal ou console, nous devons aller dans le dossier où nous avons stocké notre fichier chansons.rb puisque c'est la clé pour développer notre exemple, une fois sur place nous devons démarrer notre console interactive Rubis en tapant la commande :
 irb
Une fois que nous l'avons commencé, nous pouvons faire le exiger de notre classe en plaçant la commande :
 nécessite "./songs"
Cela doit retourner true s'il réussit, ce que nous pouvons voir dans l'image suivante.

Prochain acte, nous devons utiliser l'outil auto_migrer de DataMapper, cela nous permettra de créer la table avec les attributs de notre classe dans le fichier Database correspondant. Pour cela, nous écrivons simplement ce qui suit :

 Chansons.auto_migrate !
Ce qui crée la structure nécessaire pour pouvoir stocker les enregistrements.

Créer notre première chanson


Maintenant ce que nous devons faire est de créer l'objet qui nous permettra de stocker les valeurs nécessaires dans la base de données, pour cela nous allons créer un objet appelé song :
 chanson = Songs.new
Pour le stocker plus tard avec la commande suivante :

Cela nous donne déjà une plate-forme de base pour inclure les informations dans notre base de données, voyons ce que la console devrait afficher à ce stade :

Une fois cela fait, nous pouvons stocker les données pour cela. Toujours dans notre console nous allons ajouter les attributs de notre objet un par un, voyons :

 song.title = "Nouvelle chanson" song.duration = "315" song.release_date = Date.new (2010) song.save
Chacune des instructions précédentes stockait dans l'objet chanson et exécutait la méthode enregistrer tout cela est stocké dans la base de données. Nous voyons dans l'image suivante le processus que nous avons effectué.

Notons également que Rubis il est sensible aux majuscules et minuscules nous devons donc faire attention à la façon dont nous écrivons nos classes, car dans le cas de la console, il y a eu une erreur lors de l'écriture de la classe Date, puisque la date a été écrite, ce qui a été détecté immédiatement. Enfin, si l'on veut consulter les chansons stockées, il suffit d'écrire l'instruction suivante :

 Chansons.tous
Nous pouvons également rendre compte du nombre d'enregistrements que nous avons avec les éléments suivants.
 Songs.count
Pour finir, voyons la réponse reçue dans notre console lors de l'exécution de ces deux commandes.

Nous avons inséré notre premier enregistrement et l'avons consulté avec succès, apprenant ainsi à utiliser la base de données avec Sintra, bien que les plus observateurs se soient rendu compte que tout ce que nous faisions était Rubis, et ce fut la grande idée, de montrer comment savoir Rubis nous pouvons travailler avec Sintra sans avoir beaucoup de complications.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave