Prisma ORM Guide

Prisma ORMNext-Generation ORM

Type-safe database access for Node.js and TypeScript. Learn schemas, queries, relations, and migrations.

Contents

Prisma Basics

Prisma is a next-generation ORM that makes database access easy with type safety and auto-completion.

bash
# Installation
npm install prisma @prisma/client
npx prisma init

# This creates:
# - prisma/schema.prisma (schema file)
# - .env (database connection)
typescript
// Basic Setup
// prisma/schema.prisma
generator client {
  provider = "prisma-client-js"
}

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

model User {
  id    Int    @id @default(autoincrement())
  email String @unique
  name  String?
  posts Post[]
}

model Post {
  id        Int    @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  authorId  Int
  author    User   @relation(fields: [authorId], references: [id])
}

// Generate Prisma Client
npx prisma generate

// Usage in your application
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  const user = await prisma.user.create({
    data: {
      email: 'alice@example.com',
      name: 'Alice',
    },
  });
  console.log(user);
}

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