Installer et utiliser l’ORM Prisma avec NodeJS

Installations de Prisma

// Créez un répertoire pour votre projet Prisma et entrez dedans

npm init -y
npm i prisma --save-dev

Créez la base de données

CREATE DATABASE prisma_demo;

// Dans le fichier .env mettre cette chaine de connexion

DATABASE_URL="mysql://root:password@localhost:3306/prisma_demo"

npm install  @prisma/client   

npx prisma init


✔ Your Prisma schema was created at prisma/schema.prisma
  You can now open it in your favorite editor.
Next steps:
1. Run prisma dev to start a local Prisma Postgres server.
2. Define models in the schema.prisma file.
3. Run prisma migrate dev to migrate your local Prisma Postgres database.
4. Tip: Explore how you can extend the ORM with scalable connection pooling, global caching, and a managed serverless Postgres database. Read: https://pris.ly/cli/beyond-orm

Un répertoire prisma a été créé dans le projet. Dans le fichier schema.prisma mettez le code ci-dessous :

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  name      String?
  createdAt DateTime @default(now())
}

Ce modèle crée une table User avec :

  • id auto-incrémenté
  • email unique
  • name optionnel
  • createdAt avec la date de création

Faire la migration

npx prisma migrate dev --name init

Cela crée :

  • table User
  • Génère le client Prisma dans node_modules/.prisma/client
  • un fichier de migration

Execution du script d’exploitation de la base de donnée :

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function main() {
    // Créer un utilisateur
    const newUser = await prisma.user.create({
        data: {
            email: 'alice@example.com',
            name: 'Alice',
        },
    })
    console.log('Utilisateur créé :', newUser)

    // Lire tous les utilisateurs
    const users = await prisma.user.findMany()
    console.log('Liste des utilisateurs :', users)
}

main()
    .catch((e) => console.error(e))
    .finally(async () => {
        await prisma.$disconnect()
    })

Ce script une fois exécuté va créer un utilisateur dans la base de données.

Visualiser la base de données avec Studio

npx prisma studio
Vue de Prisma Studio sur http://localhost:5555/

Syntaxe de l’ORM Prisma

// Trouver un user par email
const user = await prisma.user.findUnique({
  where: { email: 'alice@example.com' },
})

    // Mettre à jour un user
    const updatedRecord = await prisma.user.update({
        where: { id: 1 },
        data: { email: 'yvon.huynh@hotmail.com' },
    })
    console.log('Updated utilisateur :', updatedRecord )

// Supprimer un user
    // const deletedRecord = await prisma.user.delete({
    //     where: { email: 'yvon.huynh@gmail.com' },
    // })

    // console.log('Effacement utilisateur :', deletedRecord)

Retour en haut