Luca Del Puppo - Senior Software Engineer

Prisma the ORM that node was waiting for

Luca Del Puppo

  • Senior Software Engineer
  • Javascript enthusiast
  • Typescript lover
  • “Youtuber”
  • “Writer”

Love sport: running, hiking

Love animals

Agenda

  1. What is it?
  2. CLI
  3. Data Modeling
  4. Generation
  1. Client
  2. Migration
  3. Deploy
  4. Conclusion

What is it?

Prisma is an open source next-generation ORM. (Node eco-system)

Prisma Client

Auto-generated and type-safe query builder for Node.js & TypeScript

Prisma Migrate

Migration system

Prisma Studio

GUI to view and edit data in your database

Control

Productivity

Orm

Plain SQL

SQL Builder

Prisma

Healty Constraint

Providers

  • PostgreSQL
  • MySQL
  • SQLite
  • Microsoft SQL Server
  • MongoDB
  • CockroachDB

Hey Bro!

Could you talk about interesting stuff?

CLI

$ npm install prisma

Install CLI

npx prisma init --datasource-provider PostgreSQL

Create Project

Prisma File

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

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

CLI commands

  • init
  • generate
  • migrate

Data Modelling

Schema

  • One file (schema.prisma)
    • Data sources
    • Generators
    • Data model definition
  • Syntax - PSL (Prisma Schema Language)

 

N.B. Multiple Files is not supported yet

Generator & DataSource

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

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

Models

model Ingredient {
  id Int @id @default(autoincrement())
  name String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  pizzaIngredients PizzaIngredient[]

  @@map("INGRED