Basic

  yarn add prisma @prisma/client
prisma init --datasource-provider [sqlite, postgres]
prisma generate
  

Migrate

  prisma migrate dev --name init
  

Basic Schema

Connection Urls

  // This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

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

datasource db {
  provider = "sqlite"
  // url      = env("DATABASE_URL")
  url      = "sqlite:///db.sqlite3"
}

model User {
  id   Int    @id @default(autoincrement())
  name String
}
  

Singleton client

Prisma NextJs Best Practice

  import { PrismaClient } from '@prisma/client'

const prismaClientSingleton = () => {
  return new PrismaClient()
}

type PrismaClientSingleton = ReturnType<typeof prismaClientSingleton>

const globalForPrisma = globalThis as unknown as {
  prisma: PrismaClientSingleton | undefined
}

const prisma = globalForPrisma.prisma ?? prismaClientSingleton()

export default prisma

if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
  

TypeScript Generated Types

With this schema

  model User {
  id Int @id @default(autoincrement())
  name String
}
  

You can access the User type in typescript is like so: (users is an array of User)

  import { User } from "@prisma/client";
function ListUsers({ users }: { users: User[]}) {
}
  

You may need to run this after schema change

  prisma generate