跳至主要内容

Prisma CLI 参考

本文档介绍了 Prisma CLI 命令、参数和选项。

命令

version (-v)

version 命令输出有关您当前 prisma 版本、平台和引擎二进制文件的信息。

选项

version 命令识别以下选项来修改其行为

选项必需描述
--json以 JSON 格式输出版本信息。

示例

输出版本信息
prisma version
显示CLI结果
Environment variables loaded from .env
prisma : 2.21.0-dev.4
@prisma/client : 2.21.0-dev.4
Current platform : windows
Query Engine : query-engine 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\query-engine-windows.exe)
Migration Engine : migration-engine-cli 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\migration-engine-windows.exe)
Format Binary : prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\@prisma\engines\prisma-fmt-windows.exe)
Default Engines Hash : 60ba6551f29b17d7d6ce479e5733c70d9c00860e
Studio : 0.365.0
输出版本信息 (-v)
prisma -v
显示CLI结果
Environment variables loaded from .env
prisma : 2.21.0-dev.4
@prisma/client : 2.21.0-dev.4
Current platform : windows
Query Engine : query-engine 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\query-engine-windows.exe)
Migration Engine : migration-engine-cli 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\migration-engine-windows.exe)
Format Binary : prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\@prisma\engines\prisma-fmt-windows.exe)
Default Engines Hash : 60ba6551f29b17d7d6ce479e5733c70d9c00860e
Studio : 0.365.0
以 JSON 格式输出版本信息
prisma version --json
显示CLI结果
Environment variables loaded from .env
{
"prisma": "2.21.0-dev.4",
"@prisma/client": "2.21.0-dev.4",
"current-platform": "windows",
"query-engine": "query-engine 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\query-engine-windows.exe)",
"migration-engine": "migration-engine-cli 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\migration-engine-windows.exe)",
"format-binary": "prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\prisma-fmt-windows.exe)",
"default-engines-hash": "60ba6551f29b17d7d6ce479e5733c70d9c00860e",
"studio": "0.365.0"
}

init

在当前目录中引导一个新的 Prisma ORM 项目。

init 命令不解释任何现有文件。相反,它会在您的当前目录中创建一个包含基本 schema.prisma 文件的 prisma 目录。

参数

参数必需描述默认
--datasource-provider指定 datasource 块中 provider 字段的值。选项包括 sqlitepostgresqlmysqlsqlservermongodbcockroachdbpostgresql
--url定义自定义数据源 URL。
--generator-provider定义要使用的生成器提供者。prisma-client-js
--preview-feature定义要使用的 预览功能。要定义多个预览功能,您必须为每个预览功能多次提供标志。 查看示例
--output指定 生成的客户端的输出位置node_modules/.prisma/client
--with-model将一个简单的 User 模型添加到初始 Prisma 架构中。从版本 5.14.0 开始可用。

示例

运行 prisma init
prisma init
显示CLI结果
✔ Your Prisma schema was created at prisma/schema.prisma.
You can now open it in your favorite editor.

Next steps:
1. Set the DATABASE_URL in the .env file to point to your existing database. If your database has no tables yet, read https://pris.ly/d/getting-started
2. Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlite, sqlserver, mongodb or cockroachdb.
3. Run prisma db pull to turn your database schema into a Prisma schema.
4. Run prisma generate to generate Prisma Client. You can then start querying your database.

More information in our documentation:
https://pris.ly/d/getting-started
运行 prisma init --datasource-provider sqlite
prisma init --datasource-provider sqlite

命令输出包含有关如何使用生成的

运行 prisma init --preview-feature

prisma init --preview-feature multiSchema
显示Prisma 架构结果
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
prisma init --preview-feature multiSchema --preview-feature metrics
显示Prisma 架构结果
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema", "metrics"]
}

生成的资产

prisma/schema.prisma

一个用于定义架构的初始 schema.prisma 文件

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
}

.env

一个用于定义项目环境变量的文件

# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#using-environment-variables

# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings

DATABASE_URL="file:./dev.db"
运行 prisma init --url mysql://user:password@localhost:3306/mydb
prisma init --url mysql://user:password@localhost:3306/mydb

命令输出包含有关如何使用生成的

生成的资产

prisma/schema.prisma

一个用于定义架构的最小 schema.prisma 文件

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
}

.env

一个用于定义项目环境变量的文件

# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#using-environment-variables

# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings

DATABASE_URL="mysql://user:password@localhost:3306/mydb"

generate

generate 命令根据您在 prisma/schema.prisma 文件中定义的 generatordata model 块生成资产(如 Prisma Client)。

generate 命令最常用于使用 prisma-client-js 生成器生成 Prisma Client。它执行以下三个操作

  1. 搜索当前目录及其父目录以找到适用的 npm 项目。如果找不到,它将在当前目录中创建一个 package.json 文件。
  2. 如果 @prisma/client 不存在,则将其安装到 npm 项目中。
  3. 检查当前目录以找到要处理的 Prisma 架构。然后,它会为您项目生成一个定制的 Prisma Client

先决条件

要使用 generate 命令,您必须在 schema.prisma 文件中添加生成器定义。用于生成 Prisma Client 的 prisma-client-js 生成器可以通过在 schema.prisma 文件中包含以下内容来添加

generator client {
provider = "prisma-client-js"
}

选项

选项必需描述默认
--data-proxy在 Prisma 5.0.0 之前,generate 命令将生成用于与 Prisma Accelerate 一起使用的 Prisma Client。与 --accelerate--no-engine 相互排斥。
--accelerategenerate 命令将生成用于与 Prisma Accelerate 一起使用的 Prisma Client。与 --data-proxy--no-engine 相互排斥。在 Prisma 5.1.0 及更高版本中可用。
--no-enginegenerate 命令将生成没有伴随引擎的 Prisma Client,用于与 Prisma Accelerate 一起使用。与 --data-proxy--accelerate 相互排斥。在 Prisma ORM 5.2.0 及更高版本中可用。
--no-hintsgenerate 命令将生成 Prisma Client,不会将使用提示打印到终端。在 Prisma ORM 5.16.0 及更高版本中可用。
--allow-no-modelsgenerate 命令将生成 Prisma Client,不会生成任何模型。
--watchgenerate 命令将继续监视 schema.prisma 文件,并在文件更改时重新生成 Prisma Client。
警告

弃用警告

从 Prisma 5.2.0 开始,--data-proxy--accelerate 已被弃用,取而代之的是 --no-engine,因为 Prisma Client 不再需要选项即可与 Prisma Accelerate 一起使用。所有选项都可用并且工作方式类似,但我们建议使用 --no-engine,因为它可以防止下载引擎,这将极大地影响部署到无服务器和边缘函数的应用程序的大小。

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma, ./prisma/schema.prisma
--generator指定要用来生成资产的生成器。此选项可以多次提供以包括多个生成器。默认情况下,将运行目标架构中的所有生成器。

示例

使用默认 schema.prisma 路径生成 Prisma Client
prisma generate
显示CLI结果
✔ Generated Prisma Client to ./node_modules/.prisma/client in 61ms

You can now start using Prisma Client in your code:

import { PrismaClient } from '@prisma/client'
// or const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

Explore the full API: https://pris.ly/d/client
使用非默认 schema.prisma 路径生成 Prisma Client
prisma generate --schema=./alternative/schema.prisma
继续监视 schema.prisma 文件以进行更改,以便自动重新生成 Prisma Client
prisma generate --watch
显示CLI结果
Watching... /home/prismauser/prisma/prisma-play/prisma/schema.prisma

✔ Generated Prisma Client to ./node_modules/.prisma/client in 45ms
仅使用特定生成器运行 generate 命令
prisma generate --generator client
使用多个特定生成器运行 generate 命令
prisma generate --generator client --generator zod_schemas

生成的资产

prisma-client-js 生成器默认在 ./node_modules/.prisma/client 目录中创建了一个用于与数据库交互的自定义客户端 - 你可以 自定义输出文件夹

introspect

警告

弃用警告
从 Prisma ORM 3.0.0 开始,prisma introspect 命令已弃用,并被 prisma db pull 命令取代。

validate

验证 Prisma 模式文件中的 Prisma 模式语言

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma, ./prisma/schema.prisma

示例

验证没有错误的模式
prisma validate
显示CLI结果
验证带有验证错误的模式
prisma validate
显示CLI结果

format

格式化 Prisma 模式文件,包括验证、格式化和持久化模式。

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma, ./prisma/schema.prisma
--check如果任何文件未格式化则失败。这可以在 CI 中使用,以检测模式是否正确格式化

示例

验证没有错误的模式
prisma format
显示CLI结果
格式化带有验证错误的模式
prisma format
显示CLI结果

debug

打印用于调试和错误报告的信息。

信息

此功能从 5.6.0 及更高版本开始可用。

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma, ./prisma/schema.prisma
--help / --h显示帮助信息

示例

prisma debug
显示CLI结果

如果你使用的是旧版本的 Prisma,你可以通过运行以下命令来使用此命令

npx prisma@latest debug

db

db pull

db pull 命令连接到你的数据库,并将反映当前数据库模式的 Prisma 模型添加到你的 Prisma 模式中。

警告

警告: 此命令将用新模式覆盖当前的 schema.prisma 文件。一些手动更改或自定义可能会丢失。在运行 db pull 之前,请务必备份你当前的 schema.prisma 文件(或者将你当前的状态提交到版本控制,以便能够恢复任何更改),因为它可能包含重要的修改。

信息

MongoDB 连接器 上使用 db pull 命令进行内省会对数据进行采样,而不是读取模式。

先决条件

在使用 db pull 命令之前,你必须在你的 schema.prisma 文件中定义一个有效的 datasource

例如,以下 datasource 在当前目录中定义了一个 SQLite 数据库文件

datasource db {
provider = "sqlite"
url = "file:my-database.db"
}

选项

选项必需描述默认
--force强制覆盖对模式所做的手动更改。生成的模式将仅基于内省的模式。
--print将创建的 schema.prisma 打印到屏幕上,而不是写入文件系统。

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma, ./prisma/schema.prisma

示例

分析数据库并将它的模式写入 schema.prisma 文件
prisma db pull
显示CLI结果
Introspecting based on datasource defined in schema.prisma …

✔ Introspected 2 models and wrote them into schema.prisma in 38ms

Run prisma generate to generate Prisma Client.
指定一个可选的 schema.prisma 文件用于读取和写入
prisma db pull --schema=./alternative/schema.prisma
显示CLI结果
Introspecting based on datasource defined in alternative/schema.prisma …

✔ Introspected 2 models and wrote them into alternative/schema.prisma in 60ms

Run prisma generate to generate Prisma Client.
显示生成的 schema.prisma 文件,而不是将其写入文件系统
prisma db pull --print
显示CLI结果
generator client {
provider = "prisma-client-js"
}

datasource db {
provider = "sqlite"
url = "file:./hello-prisma.db"
}

model User {
email String @unique
name String?
user_id Int @id @default(autoincrement())
post Post[]
profile Profile[]
}

model Post {
content String?
post_id Int @id @default(autoincrement())
title String
author User? @relation(fields: [author_id], references: [user_id])
author_id Int?
}

model Profile {
bio String?
profile_id Int @id @default(autoincrement())
user User @relation(fields: [user_id], references: [user_id])
user_id Int @unique
}

db push

db push 命令将 Prisma 模式的状态推送到数据库,而不使用迁移。如果数据库不存在,它将创建数据库。

当你不必对模式更改进行版本控制时,例如在原型设计和本地开发期间,此命令是一个不错的选择。

另请参阅

先决条件

在使用 db push 命令之前,你必须在你的 schema.prisma 文件中定义一个有效的 datasource 。

例如,以下 datasource 在当前目录中定义了一个 SQLite 数据库文件

datasource db {
provider = "sqlite"
url = "file:my-database.db"
}

选项

选项必需描述
--skip-generate跳过生成工件,例如 Prisma Client
--force-reset重置数据库,然后更新模式 - 如果你需要从头开始(由于迁移无法执行)时非常有用。
--accept-data-loss忽略数据丢失警告。如果由于进行模式更改而可能导致数据丢失,则需要此选项。
--help / --h显示帮助信息

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

推送模式

prisma db push

推送模式,接受数据丢失

prisma db push --accept-data-loss

使用自定义模式位置推送模式

prisma db push --schema=/tmp/schema.prisma

db seed

db seed 在 3.0.1 中从预览版变为正式版 (GA)。

查看 播种你的数据库

选项

选项必需描述
--help / --h显示帮助信息
--允许使用在种子文件中定义的自定义参数

-- 参数/ 分隔符/ 双破折号从 4.15.0 或更高版本开始可用。

示例

prisma db seed

db execute

信息

db execute 命令在 3.13.0 及更高版本中正式发布。如果你使用的是 3.9.0 到 3.13.0 之间的版本,它可以通过 --preview-feature CLI 标志使用。

警告

此命令当前在 MongoDB 上不支持。

此命令将 SQL 脚本应用于数据库,而不与 Prisma 迁移表交互。该脚本接受两个输入

  • SQL 脚本,可以通过标准输入或文件提供
  • 数据源,可以是数据源的 URL 或 Prisma 模式文件的路径

该命令的输出是连接器特定的,它并非用于返回数据,而仅用于报告成功或失败。

另请参阅

先决条件

在使用 db execute 命令之前,如果你不使用 --url 选项,你必须在你的 schema.prisma 文件中定义一个有效的 datasource

例如,以下 datasource 在当前目录中定义了一个 SQLite 数据库文件

datasource db {
provider = "sqlite"
url = "file:my-database.db"
}

选项

以下数据源输入之一是必需的

选项描述
--url要运行命令的数据源的 URL
--schemaPrisma 模式文件的路径,使用 datasource 块中的 URL

以下脚本输入之一是必需的

选项描述
--stdin将终端标准输入用作要执行的脚本
--file文件的路径。该内容将作为要执行的脚本发送

其他选项

选项必需描述
--help显示帮助信息。

示例

  • 获取位于 ./script.sql 的 SQL 文件的内容,并在 schema.prisma 文件的 datasource 块中的 URL 指定的数据库上执行它

    prisma db execute --file ./script.sql --schema schema.prisma
  • 从标准输入获取 SQL 脚本,并在 DATABASE_URL 环境变量中给出的数据源 URL 指定的数据库上执行它

    echo 'TRUNCATE TABLE dev;' | prisma db execute --stdin --url="$DATABASE_URL"

Prisma Migrate

Prisma Migrate 在 2.19.0 中从预览版变为正式版 (GA)。

信息

不适用于 MongoDB
对于 MongoDB,不使用 migrate dev 和相关命令,而是使用 db push

migrate dev

仅供开发环境使用,需要影子数据库

migrate dev 命令

  1. 重新运行影子数据库中的现有迁移历史记录,以检测模式漂移(已编辑或删除的迁移文件,或对数据库模式的手动更改)。
  2. 将待处理的迁移应用于影子数据库(例如,同事创建的新迁移)。
  3. 在运行migrate dev之前,从您对 Prisma 模式所做的任何更改中生成新的迁移。
  4. 将所有未应用的迁移应用于开发数据库并更新_prisma_migrations表。
  5. 触发工件的生成(例如,Prisma Client)。
警告

此命令在MongoDB上不受支持。请改用db push

另请参阅

选项

选项必需描述默认
--create-only创建新的迁移,但不应用它。即使您没有对模式进行任何更改,这也适用(在这种情况下,将创建空迁移)。运行migrate dev以应用迁移。
--skip-seed跳过触发种子
--skip-generate跳过触发生成器(例如,Prisma Client)
--name / -n命名迁移(例如prisma migrate dev --name added_job_title
--help / -h显示帮助信息
信息

如果在使用--create-only运行prisma migrate dev时检测到模式漂移,系统将提示您重置数据库。

参数

参数必需描述默认
--name迁移的名称。如果没有提供名称,CLI 将提示您。
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

应用所有迁移,然后创建并应用任何新的迁移

prisma migrate dev

应用所有迁移,如果存在模式更改,则创建新的迁移,但不应用它

prisma migrate dev --create-only

migrate reset

仅供开发环境使用

此命令

  1. 如果可能,删除数据库/模式,或者如果环境不允许删除数据库/模式,则执行软重置
  2. 如果数据库/模式已删除,则使用相同的名称创建新的数据库/模式
  3. 应用所有迁移
  4. 运行种子脚本
警告

此命令在MongoDB上不受支持。请改用db push

选项

选项必需描述默认
--force跳过确认提示
--skip-generate跳过触发生成器(例如,Prisma Client)
--skip-seed跳过触发种子
--help / --h显示帮助信息

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

prisma migrate reset

migrate deploy

migrate deploy命令将应用所有待处理的迁移,如果数据库不存在,则创建数据库。主要用于非开发环境。此命令

  • 查找数据库中的漂移或 Prisma 模式中的更改
  • 重置数据库或生成工件
  • 依赖影子数据库
警告

此命令在MongoDB上不受支持。请改用db push

选项

选项必需描述默认
--help / --h显示帮助信息

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

prisma migrate deploy

migrate resolve

migrate resolve命令允许您通过将失败的迁移标记为已应用(支持基线)或回滚来解决生产环境中的迁移历史记录问题。

请注意,此命令只能与失败的迁移一起使用。如果您尝试将其与成功的迁移一起使用,您将收到错误。

警告

此命令在MongoDB上不受支持。请改用db push

选项

选项必需描述默认
--help / --h显示帮助信息

参数

参数必需描述默认
--applied无*将特定迁移记录为已应用 - 例如--applied "20201231000000_add_users_table"
--rolled-back无*将特定迁移记录为已回滚 - 例如--rolled-back "20201231000000_add_users_table"./schema.prisma
./prisma/schema.prisma
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

您必须指定--rolled-back--applied

示例

prisma migrate resolve --applied 20201231000000_add_users_table
prisma migrate resolve --rolled-back 20201231000000_add_users_table

migrate status

prisma migrate status命令查找./prisma/migrations/*文件夹中的迁移和_prisma_migrations表中的条目,并编译有关数据库中迁移状态的信息。

警告

此命令在MongoDB上不受支持。请改用db push

例如

Status
3 migrations found in prisma/migrations

Your local migration history and the migrations table from your database are different:

The last common migration is: 20201127134938_new_migration

The migration have not yet been applied:
20201208100950_test_migration

The migrations from the database are not found locally in prisma/migrations:
20201208100950_new_migration

在 4.3.0 及更高版本中,prisma migrate status 在以下情况下退出时退出代码为 1

  • 出现数据库连接错误
  • migrations目录中存在尚未应用于数据库的迁移文件
  • migrations目录中的迁移历史记录与数据库状态不同
  • 未找到迁移表
  • 找到了失败的迁移

选项

选项必需描述默认
--help / --h显示帮助信息

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

prisma migrate status

migrate diff

信息

migrate diff命令在 3.13.0 及更高版本中普遍可用。如果您使用的是 3.9.0 到 3.13.0 之间的版本,它可以在--preview-feature CLI 标志后面使用。

警告

此命令仅部分支持MongoDB。有关详细信息,请参见下面的命令选项。

此命令比较两个数据库模式源并输出将第一个带到第二个状态的迁移的描述。

输出可以以人类可读的摘要(默认值)或可执行脚本的形式给出。

警告

migrate diff命令只能比较Prisma 支持的数据库功能。如果两个数据库仅在不受支持的功能(例如视图或触发器)上有所不同,则migrate diff将不会显示它们之间的任何差异。

命令的格式为

prisma migrate diff --from-... <source1> --to-... <source2>

其中--from-...--to-...选项根据数据库模式源的类型进行选择。支持的源类型为

  • 实时数据库
  • 迁移历史记录
  • Prisma 模式数据模型
  • 空模式

两个模式源必须使用相同的数据库提供程序。例如,不支持比较 PostgreSQL 数据源和 SQLite 数据源的差异。

另请参阅

先决条件

在使用migrate diff命令之前,如果您使用的是--from-schema-datasource--to-schema-datasource,则必须在您的schema.prisma文件中定义有效的datasource

例如,以下 datasource 在当前目录中定义了一个 SQLite 数据库文件

datasource db {
provider = "sqlite"
url = "file:my-database.db"
}

选项

以下--from-...选项之一是必需的

选项描述说明
--from-url数据源 URL
--from-migrationsPrisma Migrate 迁移目录的路径在 MongoDB 中不受支持
--from-schema-datamodelPrisma 模式文件的路径,使用数据模型进行差异
--from-schema-datasourcePrisma 模式文件的路径,使用datasource块中的 URL 进行差异
--from-empty假设您要迁移的的数据模型为空
--from-local-d1本地 D1 实例的路径(了解更多5.12.0起可用

以下--to-...选项之一是必需的

选项描述说明
--to-url数据源 URL
--to-migrationsPrisma Migrate 迁移目录的路径在 MongoDB 中不受支持
--to-schema-datamodelPrisma 模式文件的路径,使用数据模型进行差异
--to-schema-datasourcePrisma 模式文件的路径,使用datasource块中的 URL 进行差异
--to-empty假设您要迁移到的数据模型为空
--to-local-d1本地 D1 实例的路径(了解更多5.12.0起可用

其他选项

选项必需描述说明
--shadow-database-url影子数据库的 URL仅在使用--to-migrations--from-migrations时才需要
--script输出 SQL 脚本而不是默认的人类可读摘要在 MongoDB 中不受支持
-o, --output写入文件而不是 stdout5.12.1起可用
--exit-code更改退出代码行为以指示差异是否为空(空:0,错误:1,不为空:2)。默认行为是成功:0,错误:1。
--help显示帮助信息。

示例

  • 比较由数据源 URL 指定的两个数据库,并输出默认的人类可读摘要

    prisma migrate diff \
    --from-url "$DATABASE_URL" \
    --to-url "postgresql://login:password@localhost:5432/db2"
  • 将 URL 为$DATABASE_URL的数据库状态与./prisma/migrations目录中的迁移定义的模式进行比较,并将差异输出到脚本script.sql

    prisma migrate diff \
    --from-url "$DATABASE_URL" \
    --to-migrations ./prisma/migrations \
    --shadow-database-url $SHADOW_DATABASE_URL \
    --script > script.sql

Prisma 数据平台

platform抢先体验版

platform命令从 5.10.0 或更高版本开始,通过 Prisma CLI 提供对 Prisma 数据平台的访问。

  • 认证:

    • platform auth login:打开浏览器窗口以进行登录或帐户创建。
    • platform auth logout:注销平台。
    • platform auth show:显示有关当前已认证用户的 信息。
  • 工作区管理:

    • platform workspace show:列出您的帐户可用的所有工作区。
  • 项目管理:

    • platform project show:列出指定工作区中的所有项目。
    • platform project create:在指定的工作区中创建新项目。
    • platform project delete:删除指定的项目。
  • 环境管理:

    • platform environment show:列出指定项目的 所有环境。
    • platform environment create:在指定项目中创建新环境。
    • platform environment delete:删除指定的 环境。
  • API 密钥管理:

    • platform apikey show:列出指定环境的 所有 API 密钥。
    • platform apikey create:为指定环境创建新的 API 密钥。
    • platform apikey delete:删除指定的 API 密钥。
  • Prisma 加速:

    • platform accelerate enable: 为指定环境启用 Prisma 加速。
    • platform accelerate disable: 为指定环境禁用 Prisma 加速。
  • Prisma Pulse:

    • platform pulse enable: 为指定环境启用 Prisma Pulse。
    • platform pulse disable: 为指定环境禁用 Prisma Pulse。

您可以在这里找到完整的可用命令列表及其参数。

Studio

studio

studio 命令允许您以交互方式与您的数据进行交互并管理它。它通过启动一个本地 Web 服务器来实现这一点,该服务器运行一个 Web 应用程序,该应用程序配置了您的项目的数据模式和记录。

先决条件

在使用 studio 命令之前,您必须在 schema.prisma 文件中定义一个有效的datasource

例如,以下 datasource 在当前目录中定义了一个 SQLite 数据库文件

datasource db {
provider = "sqlite"
url = "file:my-database.db"
}

选项

studio 命令识别以下选项

选项必需描述默认
-b, --browser自动打开 Studio 的浏览器。<您的默认浏览器>
-h, --help显示所有可用选项并退出
-p, --port启动 Studio 的端口号。5555

参数

参数必需描述默认
--schema指定要处理的所需 schema.prisma 文件的路径,而不是默认路径。支持绝对路径和相对路径。./schema.prisma
./prisma/schema.prisma

示例

在默认端口上启动 Studio 并打开一个新的浏览器选项卡

prisma studio

在不同端口上启动 Studio 并打开一个新的浏览器选项卡

prisma studio --port 7777

启动 Studio 并打开一个 Firefox 选项卡

prisma studio --browser firefox

启动 Studio 而不打开新的浏览器选项卡

prisma studio --browser none

package.json 条目选项

schema

可以通过 package.json 文件中的 prisma.schema 条目指定所需 schema.prisma 文件的路径。该路径定义了当您运行任何 CLI 命令时 Prisma CLI 应使用的文件。支持绝对路径和相对路径。

"package.json"
{
"name": "my-project",
"version": "1.0.0",
"prisma": {
"schema": "./custom-path-to-schema/schema.prisma"
}
}

此功能从版本 2.7.0 及更高版本可用。

seed

用于填充数据源的命令在 package.json 文件中的 prisma.seed 条目中指定。它在调用或触发 prisma db seed 时使用。

查看 播种你的数据库

"package.json"
{
"name": "my-project",
"version": "1.0.0",
"prisma": {
"seed": "node ./prisma/seed.js"
}
}

此功能从版本 3.0.1 及更高版本可用。

为 CLI 使用 HTTP 代理

Prisma CLI 支持自定义 HTTP 代理。当您处于公司防火墙后面时,这尤其重要。

要激活代理的使用,请提供以下环境变量之一

  • HTTP_PROXYhttp_proxy: http 流量的代理 URL,例如 https://127.0.0.1:8080
  • HTTPS_PROXYhttps_proxy: https 流量的代理 URL,例如 https://127.0.0.1:8080