Prisma 常用命令
发布于
# Prisma
安装
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 帮我们完成这些工作:
- 根据 schema.prisma 中的模型定义,生成了创建这些模型所需的 SQL 语句
- 迁移文件的名称包含了 migrate 命令中可以指定 “—name” 参数,便于版本控制
生成 Prisma Client
npx prisma generate
- Prisma Client 是一个类型安全的数据库访问库,它是根据 schema.prisma 中的模型定义生成的
- Prisma Client 会根据 schema.prisma 中的模型定义生成一个强类型的数据访问层,这样我们就可以在代码中使用它了
Prisma Studio
npx prisma studio
- Prisma Studio 是一个可视化的数据库管理工具,它可以让我们在浏览器中查看和管理数据库中的数据
Push & Pull
npx prisma db push
npx prisma db pull
- db push 命令会将本地的 schema.prisma 文件中的模型定义推送到数据库中
- db pull 命令会将数据库中的模型定义拉取到本地的 schema.prisma 文件中
更新生产环境数据库
npx prisma migrate deploy
- 在本地运行:npx prisma migrate dev —name add_new_field 来生成新的迁移文件
- 将生成的迁移文件更新到生产环境数据库:npx prisma migrate deploy
重置数据库
npx prisma migrate reset
- 重置数据库会删除所有的表,然后重新运行所有的迁移
- 重置数据库会删除所有的数据,所以在生产环境中不要使用这个命令
批准迁移
npx prisma migrate resolve
- 如果想让迁移生效,我们通常需要运行 npx prisma migrate deploy
- 但是,如果我们想要在生产环境中运行迁移,但又不想运行 deploy 命令,我们可以使用 resolve 命令