Base de donnéesORM

ORM

Pour pouvoir centraliser la donnée de notre application nous aurons besoin d’une base de données.
Dans la plupart des cas vous devrez faire choix entre une base de données relationel (type SQL) ou alors NoSQL (type MongoDB).
Peu importe le choix que vous ferez vous devrez interragir avec celle ci pour pouvoir faire de lecture et de l’écriture.
Un ORM (Object-relational mapping) est un outil qui va vous permettre de faire l’interface entre la base de données et votre code.

Requête RAW

Une requête SQL ressemble à ceci:

INSERT INTO Customers (
  CustomerName,
  ContactName,
  Address,
  City,
  PostalCode,
  Country
) VALUES ('Cardinal',
  'Tom B. Erichsen',
  'Skagen 21',
  'Stavanger',
  '4006',
  'Norway'
);

Utilisation d’un ORM

En utilisant un ORM le code précédent devient alors:

db.customers.create({
  customerName: 'Cardinal',
  contactName: 'Tom B. Erichsen',
  address: 'Skagen 21',

})

Prisma

Prisma est un ORM permettant de se connecter à un certains nombre de base de données différentes. Il vous permet de conserver la notion de typage de données au niveau de votre code.
Il dispose non seulement d’un SDK pour effectuer des requêtes de base et avancées sur une base de données, mais il gère également les schémas, les migrations, la lecture et les écritures en base.

Installation

On va pouvoir initaliser l’environnement Prisma: En l’installant d’abord les dépendances suivantes:

$ npm i prisma -D
$ npm install @prisma/client@latest
$ npx prisma init --datasource-provider sqlite

Cette commande va faire 2 choses:

  • Créer un dossier prisma
  • Créer un fichier de schema dans lequel nous allons pouvoir définir des modèles

Création des modèles

Todo

prisma/schema.prisma
model Todo {
  id        String   @id @default(uuid())
  createdAt DateTime @default(now())
  content   String
  completed Boolean  @default(false)
}

Migrations

Une fois le modèle défini on peut lancer notre première migration:

$ npx prisma migrate dev --name init