beizhu
type
Post
status
Published
date
Aug 22, 2023
slug
summary
Prisma是一款现代化的ORM框架,它可以连接到多种数据库类型(如PostgreSQL、MySQL、SQLite和SQL Server),提供高效、类型安全和易于使用的API,从而方便地操作和管理数据库。它的作用是帮助开发人员快速构建可扩展、高性能的数据库应用程序,同时减少手写底层SQL代码的工作量。tags
建站
category
技术
icon
password
Prisma是一款现代化的ORM框架,它可以连接到多种数据库类型(如PostgreSQL、MySQL、SQLite和SQL Server),提供高效、类型安全和易于使用的API,从而方便地操作和管理数据库。它的作用是帮助开发人员快速构建可扩展、高性能的数据库应用程序,同时减少手写底层SQL代码的工作量。- 使用 Prisma Client 进行查询
- 使用 Prisma schema 数据建模
- 使用 Prisma Migrate 进行数据库模式迁移
- 使用
prisma db push进行数据库模式原型开发
- 使用
prisma db seed初始化数据
- 使用 Prisma Studio 查看和编辑数据
Starter
首先通过命令创建一个
Nextjs项目安装
Prisma初始化
prisma设置执行完后,多了个配置文件
prisma/schema.prisma和.env文件,内容如下其中datasource代表数据源

Prisma schema
Prisma schema 文件(简写:schema file, Prisma schema 或 schema)是你的 Primsa 组织结构中主要的配置文件。它通常被命名为
schema.prisma,其中包含以下几部分:- 数据源:指明 Prisma 连接的数据源的细节 (例如一个 PostgreSQL 数据库)
- 生成器:指明基于数据模型生成的客户端 (例如 Prisma Client)
开始使用 Prisma Migrate
Prisma Migrate 是 Prisma 的数据库迁移工具,用于管理和执行数据库模式的变更。它允许你在开发过程中更改数据库模型,而不会丢失数据或手动执行 SQL 脚本。
以下是 Prisma Migrate 的主要功能和特点:
- 数据库迁移历史管理:Prisma Migrate 通过创建和管理迁移历史来跟踪数据库模式的变更。每个迁移代表一个数据库模式更改的单元,例如创建新表、更改列、添加索引等。
- 自动迁移:Prisma Migrate 支持自动迁移功能,可以自动生成和应用迁移脚本。当你对数据库模型进行更改时,Prisma Migrate 会分析模型差异,并自动生成相应的迁移脚本。你可以使用命令来应用这些自动生成的脚本,从而更新数据库。
- 手动迁移:除了自动迁移外,Prisma Migrate 也支持手动迁移。你可以手动编写和编辑迁移脚本,以便执行更复杂的数据库模式更改操作。
- 安全回滚:Prisma Migrate 允许你回滚已应用的迁移。这是一个非常有用的功能,可以在出现问题时撤销已应用的迁移,并将数据库恢复到原先的状态。
使用 Prisma Migrate 的基本流程如下:
- 在 Prisma schema 文件中定义和配置你的数据库模型。
- 创建迁移:运行命令创建一个新的迁移,并对应相应的数据库模式更改。
- 应用迁移:运行命令来应用迁移,对数据库进行更新。
- 备份和回滚:Prisma Migrate 提供命令来备份数据库和回滚已应用的迁移。
总之,Prisma Migrate 提供了一种简单且强大的方式来管理和执行数据库模型的变更,帮助你保持数据库与应用程序开发的同步。它能够自动生成迁移脚本并提供安全的回滚功能,使数据库的维护更加简单和可靠

Prisma Studio
Prisma Studio 是数据库中数据的可视化编辑器
Prisma Client
Prisma Client 是一个跟据你的数据库 schema 自动生成的定制化数据库客户端 client。默认情况下, Prisma Client 被生成到 node_modules/.prisma/client 文件夹下- 安装
@prisma/clientnpm 包:
- 使用以下命令生成 Prisma Client:
每次对 `Prisma schema` 进行更改后,你都需要重新运行命令 **`prisma generate`**去更新生成的 `Prisma Client` 代码。
每次对 `Prisma schema` 进行更改后,你都需要重新运行命令 `prisma generate`去更新生成的 `Prisma Client` 代码。

应用程序通常只应当创建 一个
PrismaClient 实例。在长期运行的应用程序中,建议:
- ✔ 创建一个的
PrismaClient实例,并在整个应用程序中重复使用它
默认情况下适用默认的池大小(
num_physical_cpus * 2 + 1)- 你不需要设置connection_limit参数- ✔ 将
PrismaClient分配给一个全局变量仅在开发环境中以防止因创建新实例而产生热重载
防止热重载创建
PrismaClient的新实例像Next.js这样的框架支持热重载改变的文件,这使你能够在不重启的情况下看到你的应用程序的变化。然而,如果框架刷新了负责导出
PrismaClient的模块,这可能会导致开发环境中出现额外的、不需要的PrismaClient实例。其余的就是增删改查,就不细列了


