


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
- What is it?
- CLI
- Data Modeling
- Generation
- Client
- Migration
- Deploy
- 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?
Image by catalyststuff on Freepik


CLI

$ npm install prismaInstall CLI

npx prisma init --datasource-provider PostgreSQLCreate 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