跳至主要内容

生成器

Prisma 模式可以有一个或多个生成器,由 generator 块表示

generator client {
provider = "prisma-client-js"
output = "./generated/prisma-client-js"
}

生成器确定运行 prisma generate 命令时创建哪些资产。主要属性 provider 定义了创建哪个 **Prisma Client(特定于语言)** - 目前,只有 prisma-client-js 可用。或者,您可以定义任何遵循我们的生成器规范的 npm 包。此外,还可以选择使用 output 定义生成的资产的自定义输出文件夹。

Prisma Client: prisma-client-js

Prisma 的 JavaScript Client 的生成器接受多个附加属性

  • previewFeatures: 要包含的 预览功能
  • binaryTargets: prisma-client-js 的引擎二进制目标(例如,如果您部署到 Ubuntu 18+,则为 debian-openssl-1.1.x,如果您在本地工作,则为 native
generator client {
provider = "prisma-client-js"
previewFeatures = ["sample-preview-feature"]
binaryTargets = ["linux-musl"]
}

二进制目标

Prisma Client JS (prisma-client-js) 使用多个 引擎。引擎是用 Rust 实现的,并以可执行的、平台相关的引擎文件形式由 Prisma Client 使用。根据您在哪个平台上执行代码,您需要正确的文件。“二进制目标”用于定义目标平台上应该存在哪些文件。

当您 将应用程序部署 到生产环境时,正确的文件尤其重要,这通常与您的本地开发环境不同。

native 二进制目标

native 二进制目标是特殊的。它不映射到具体的操作系统。相反,当在 binaryTargets 中指定 native 时,Prisma Client 会检测当前操作系统并自动为其指定正确的二进制目标。

例如,假设您正在运行 **macOS** 并指定了以下生成器

generator client {
provider = "prisma-client-js"
binaryTargets = ["native"]
}

在这种情况下,Prisma Client 会检测您的操作系统并根据 支持的操作系统列表 找到合适的二进制文件。如果您使用 macOS Intel x86 (darwin),则会选择为 darwin 编译的二进制文件。如果您使用 macOS ARM64 (darwin-arm64),则会选择为 darwin-arm64 编译的二进制文件。

注意native 二进制目标是默认值。如果您希望包含用于部署到不同环境的其他 二进制目标,则可以显式设置它。

社区生成器

以下是社区创建的生成器的列表。如果您想创建自己的生成器,您可以使用我们的社区成员 Yassin Eldeep 构建的 create-prisma-generator CLI。

注意:社区项目不受 Prisma 维护或官方支持,某些功能可能不同步。请自行决定使用。如果您创建了一个社区生成器,请使用此命名约定:prisma-generator-<custom-name>