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 命令