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 sqliteCette 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
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