On this page
article
Prisma
Basic
yarn add prisma @prisma/client
prisma init --datasource-provider [sqlite, postgres]
prisma generate
Migrate
prisma migrate dev --name init
Basic Schema
// 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
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