Redon

一心的小屋

Prisma 常用命令

发布于 # Prisma

Prisma Site

安装

pnpm add prisma -D
pnpm add @prisma/client

初始化

可选数据库:sqlite、postgresql、mysql、sqlserver

npx prisma init --datasource-provider sqlite

prisma.ts 文件

数据库的操作一般都是引入 prisma.ts 文件进行

import { PrismaClient } from "@prisma/client";

import { env } from "@/env";

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

export const db =
  globalForPrisma.prisma ??
  new PrismaClient({
    log:
      env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"],
  });

if (env.NODE_ENV !== "production") globalForPrisma.prisma = db;

模型示例

schema.prisma 文件中创建示例模型

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)
  author    User    @relation(fields: [authorId], references: [id])
  authorId  Int
}

更新模型

npx prisma migrate dev

这会生成一个新的迁移,并会让 Prisma 帮我们完成这些工作:

生成 Prisma Client

npx prisma generate

Prisma Studio

npx prisma studio

Push & Pull

npx prisma db push
npx prisma db pull

更新生产环境数据库

npx prisma migrate deploy

重置数据库

npx prisma migrate reset

批准迁移

npx prisma migrate resolve