跳到主要內容

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 目錄。

預設情況下,專案會設定一個本地 Prisma Postgres 例項,但您可以使用 --datasource-provider 選項選擇不同的資料庫。

引數

引數必需描述預設
--datasource-provider指定 datasource 塊中 provider 欄位的值。選項包括 prisma+postgressqlitepostgresqlmysqlsqlservermongodbcockroachdbpostgresql
--db--datasource-provider prisma+postgres 的簡寫語法;建立一個新的Prisma Postgres 例項。需要在.
--prompt (或 --vibe)根據提示腳手架化 Prisma schema 並將其部署到新的 Prisma Postgres 例項。需要在.
--url定義自定義 datasource URL。
--generator-provider定義要使用的生成器提供者。prisma-client-js
--preview-feature定義要使用的預覽功能。要定義多個預覽功能,您必須為每個預覽功能多次提供該標誌。請參見示例。
--output指定生成客戶端的輸出位置node_modules/.prisma/client
--with-model將一個簡單的 User 模型新增到初始 Prisma schema。從版本 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 dev 命令與您的本地 Prisma Postgres 例項互動(例如,執行遷移或執行查詢)。

執行 prisma init --datasource-provider sqlite

prisma init --datasource-provider sqlite

命令輸出包含有關如何使用生成的檔案以及如何開始在專案中使用 Prisma ORM 的有用資訊。

執行 prisma init --db

prisma init --db

該命令建立一個新的 Prisma Postgres 例項。請注意,它要求您透過以下方式進行身份驗證:,如果您首次執行它而未進行身份驗證,該命令將開啟瀏覽器供您登入控制檯。

執行 prisma init --prompt "Simple habit tracker application"

prisma init --prompt "Simple habit tracker application"

該命令會生成一個 Prisma schema 並將其部署到全新的 Prisma Postgres 例項。請注意,它要求您透過以下方式進行身份驗證:,如果您首次執行它而未進行身份驗證,該命令將開啟瀏覽器供您登入控制檯。

執行 prisma init --preview-feature

prisma init --preview-feature multiSchema
顯示Prisma schema結果
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 schema結果
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

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

生成的檔案

prisma/schema.prisma

一個初始的 schema.prisma 檔案,用於定義您的 schema

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

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

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

.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"

.gitignore

一個檔案,用於指定 git 在您的專案中應忽略哪些資料夾/檔案。

node_modules
# Keep environment variables out of version control
.env

/generated/prisma

執行 prisma init --url mysql://user:password@localhost:3306/mydb

--url 引數的 init 命令允許您在 Prisma 初始化期間指定自定義資料來源 URL,而不是依賴佔位符資料庫 URL

prisma init --url mysql://user:password@localhost:3306/mydb

生成的檔案

prisma/schema.prisma

一個最小的 schema.prisma 檔案,用於定義您的 schema

// 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"

dev

dev 命令啟動一個本地 Prisma Postgres 資料庫,您可以針對該資料庫執行 Prisma ORM 命令。它對於開發和測試目的很有用,也允許您在生產環境中輕鬆切換到Prisma Postgres。Y

引數

引數必需描述預設
--name (或 -n)啟用針對特定資料庫例項。瞭解更多
--port (或 -p)本地 Prisma Postgres HTTP 伺服器將監聽的主埠號。51213
--db-port (或 -P)本地 Prisma Postgres 資料庫伺服器將監聽的埠號。51214
--shadow-db-port影子資料庫伺服器將監聽的埠號。51215
--debug啟用除錯日誌。false

示例

執行 prisma dev

prisma dev
顯示CLI結果
$ npx prisma dev
Fetching latest updates for this subcommand...
✔ Great Success! 😉👍

Your prisma dev server default is ready and listening on ports 63567-63569.

╭──────────────────────────────╮
│[q]uit [h]ttp url [t]cp urls│
╰──────────────────────────────╯

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 Schema。然後,它將為您的專案生成一個自定義的 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 互斥。
--accelerate`generate` 命令將生成用於 Prisma Accelerate 的 Prisma Client。與 --data-proxy--no-engine 互斥。在 Prisma 5.1.0 及更高版本中可用。
--no-engine`generate` 命令將生成不帶附帶引擎的 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。
warning

棄用警告

從 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 中的所有生成器都將執行。

示例

使用預設的 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 目錄中建立一個自定義客戶端,用於與您的資料庫互動 - 您可以自定義輸出資料夾

validate

驗證 Prisma schema 檔案的Prisma Schema 語言

引數

引數必需描述預設
--schema指定要處理的 `schema.prisma` 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma, ./prisma/schema.prisma

示例

驗證無錯誤的 schema
prisma validate
顯示CLI結果
驗證帶驗證錯誤的 schema
prisma validate
顯示CLI結果

format

格式化 Prisma schema 檔案,包括驗證、格式化和持久化 schema。

引數

引數必需描述預設
--schema指定要處理的 `schema.prisma` 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma, ./prisma/schema.prisma
--check如果有任何檔案未格式化,則失敗。這可以在 CI 中用於檢測 schema 是否已正確格式化

示例

驗證無錯誤的 schema
prisma format
顯示CLI結果
格式化帶驗證錯誤的 schema
prisma format
顯示CLI結果

debug

列印用於除錯和錯誤報告的資訊。

info

這在 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 命令連線到您的資料庫,並將反映當前資料庫 schema 的 Prisma 模型新增到您的 Prisma schema 中。

warning

警告:該命令將用新 schema 覆蓋當前的 schema.prisma 檔案。一些手動更改或自定義可能會丟失。在執行 db pull 之前,請務必備份當前的 schema.prisma 檔案(或將當前狀態提交到版本控制以能夠恢復任何更改),如果其中包含重要修改。

info

MongoDB 聯結器上使用 db pull 命令進行內省會取樣資料而不是讀取 schema。

先決條件

在使用 db pull 命令之前,您必須在 schema.prisma 檔案中定義一個有效的datasource

例如,以下 datasource 定義了當前目錄中的 SQLite 資料庫檔案

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

選項

選項必需描述預設
--force強制覆蓋對 schema 進行的手動更改。生成的 schema 將僅基於內省的 schema。
--print將建立的 schema.prisma 列印到螢幕而不是寫入檔案系統。

引數

引數必需描述預設
--schema指定要處理的 `schema.prisma` 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma, ./prisma/schema.prisma

示例

分析資料庫並將其 schema 寫入 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 schema 的狀態推送到資料庫,而不使用遷移。如果資料庫不存在,它會建立資料庫。

當您不需要對 schema 更改進行版本控制時,例如在原型設計和本地開發期間,此命令是一個不錯的選擇。

另請參見

先決條件

在使用 db push 命令之前,您必須在 schema.prisma 檔案中定義一個有效的 datasource

例如,以下 datasource 定義了當前目錄中的 SQLite 資料庫檔案

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

選項

選項必需描述
--skip-generate跳過生成 Prisma Client 等工件
--force-reset重置資料庫然後更新 schema - 如果您由於無法執行的遷移而需要從頭開始,這將很有用。
--accept-data-loss忽略資料丟失警告。如果由於 schema 更改可能導致資料丟失,則需要此選項。
--help / --h顯示幫助資訊

引數

引數必需描述預設
--schema指定要處理的 schema.prisma 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma
./prisma/schema.prisma

示例

推送 schema

prisma db push

推送 schema,接受資料丟失

prisma db push --accept-data-loss

使用自定義 schema 位置推送 schema

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

db seed

db seed 從預覽版在 3.0.1 中變為通用可用 (GA)。

參見為您的資料庫播種

選項

選項必需描述
--help / --h顯示幫助資訊
--允許使用 seed 檔案中定義的自定義引數

-- 引數/分隔符/雙破折號從 4.15.0 版或更高版本開始可用。

示例

prisma db seed

db execute

info

db execute 命令在 3.13.0 及更高版本中通常可用。如果您使用的是 3.9.0 到 3.13.0 之間的版本,它可以透過 --preview-feature CLI 標誌使用。

warning

此命令目前不支援MongoDB

此命令將 SQL 指令碼應用於資料庫,而不與 Prisma 遷移表互動。該指令碼接受兩個輸入:

  • SQL 指令碼,可以透過標準輸入或檔案中提供
  • 資料來源,可以是資料來源的 URL 或 Prisma schema 檔案的路徑

命令的輸出是聯結器特定的,並非用於返回資料,而僅用於報告成功或失敗。

另請參見

先決條件

在使用 db execute 命令之前,如果您不使用 --url 選項,則必須在 schema.prisma 檔案中定義一個有效的datasource

例如,以下 datasource 定義了當前目錄中的 SQLite 資料庫檔案

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

選項

需要以下資料來源輸入之一

選項描述
--url要執行命令的資料來源 URL
--schemaPrisma schema 檔案的路徑,使用 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)。

info

不適用於 MongoDB
對於MongoDB,使用db push 而不是 migrate dev 及相關命令。

migrate dev

僅限開發環境使用,需要影子資料庫

migrate dev 命令

  1. 影子資料庫中重新執行現有遷移歷史,以檢測 schema 漂移(編輯或刪除的遷移檔案,或對資料庫 schema 的手動更改)
  2. 將待處理的遷移應用於影子資料庫(例如,同事建立的新遷移)
  3. 在執行 migrate dev 之前,從您對 Prisma schema 所做的任何更改生成新的遷移
  4. 將所有未應用的遷移應用於開發資料庫並更新 _prisma_migrations
  5. 觸發工件生成(例如,Prisma Client)
warning

此命令不支援MongoDB。請改用db push

另請參見

選項

選項必需描述預設
--create-only建立新的遷移但不應用它。即使您沒有對 schema 進行任何更改,這也有效(在這種情況下,會建立一個空遷移)。執行 migrate dev 以應用遷移。
--skip-seed跳過觸發播種
--skip-generate跳過觸發生成器(例如,Prisma Client)
--name / -n命名遷移(例如 prisma migrate dev --name added_job_title
--help / -h顯示幫助資訊
info

如果在執行 prisma migrate dev 並使用 --create-only 時檢測到schema 漂移,系統將提示您重置資料庫。

引數

引數必需描述預設
--name遷移的名稱。如果未提供名稱,CLI 將提示您。
--schema指定要處理的 schema.prisma 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma
./prisma/schema.prisma

示例

應用所有遷移,然後建立並應用任何新遷移

prisma migrate dev

應用所有遷移並在 schema 發生更改時建立新遷移,但不應用它

prisma migrate dev --create-only

migrate reset

僅限開發環境使用

此命令

  1. 如果可能,刪除資料庫/schema,如果環境不允許刪除資料庫/schema,則執行軟重置
  2. 如果資料庫/schema 被刪除,則建立同名的新資料庫/schema
  3. 應用所有遷移
  4. 執行 seed 指令碼
warning

此命令不支援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 schema 中的更改
  • 重置資料庫或生成工件
  • 依賴影子資料庫
warning

此命令不支援MongoDB。請改用db push

選項

選項必需描述預設
--help / --h顯示幫助資訊

引數

引數必需描述預設
--schema指定要處理的 schema.prisma 檔案的路徑,而不是預設路徑。支援絕對路徑和相對路徑。./schema.prisma
./prisma/schema.prisma

示例

prisma migrate deploy

migrate resolve

migrate resolve 命令允許您透過將失敗的遷移標記為已應用(支援基線)或回滾來解決生產中的遷移歷史問題。

請注意,此命令只能用於失敗的遷移。如果您嘗試將其用於成功的遷移,則會收到錯誤。

warning

此命令不支援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 表中的條目,並編譯有關資料庫中遷移狀態的資訊。

warning

此命令不支援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

info

此命令僅部分支援MongoDB。詳情請參閱下面的命令選項。

此命令比較兩個資料庫 schema 源,並輸出一個描述從第一個源遷移到第二個源狀態的描述。

輸出可以是人類可讀的摘要(預設)或可執行指令碼。

warning

migrate diff 命令只能比較Prisma 支援的資料庫功能。如果兩個資料庫僅在不支援的功能(如檢視或觸發器)上存在差異,則 migrate diff 將不會顯示它們之間的任何差異。

命令格式為

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

其中 --from-...--to-... 選項根據資料庫 schema 源的型別選擇。支援的源型別有:

  • 即時資料庫
  • 遷移歷史
  • Prisma schema 資料模型
  • 空 schema

兩個 schema 源必須使用相同的資料庫提供者。例如,不支援比較 PostgreSQL 資料來源與 SQLite 資料來源的 diff。

另請參見

先決條件

在使用 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 schema 檔案的路徑,使用資料模型進行 diff
--from-schema-datasourcePrisma schema 檔案的路徑,使用 datasource 塊中的 URL 進行 diff
--from-empty假設您要從中遷移的資料模型是空的
--from-local-d1本地 D1 例項的路徑(瞭解更多5.12.0 起可用

以下 --to-... 選項之一是必需的

選項描述備註
--to-url資料來源 URL
--to-migrationsPrisma Migrate 遷移目錄的路徑MongoDB 不支援
--to-schema-datamodelPrisma schema 檔案的路徑,使用資料模型進行 diff
--to-schema-datasourcePrisma schema 檔案的路徑,使用 datasource 塊中的 URL 進行 diff
--to-empty假設您要遷移到的資料模型是空的
--to-local-d1本地 D1 例項的路徑(瞭解更多5.12.0 起可用

其他選項

選項必需描述備註
--shadow-database-url影子資料庫的 URL僅在使用 --to-migrations--from-migrations 時需要
--script輸出 SQL 指令碼而不是預設的人類可讀摘要MongoDB 不支援
-o, --output寫入檔案而不是標準輸出5.12.1 起可用
--exit-code更改退出程式碼行為以指示 diff 是否為空(為空: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 目錄中遷移定義的 schema 進行比較,並將差異輸出到指令碼 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 Accelerate:
    • platform accelerate enable:為指定環境啟用 Prisma Accelerate。
    • platform accelerate disable:為指定環境停用 Prisma Accelerate。

您可以在此處找到包含引數的可用命令完整列表。

mcp

啟動Prisma MCP 伺服器

Studio

studio

studio 命令允許您互動式地與您的資料進行互動和管理。它透過啟動一個本地 Web 伺服器來實現,該伺服器的 Web 應用程式配置了您的專案資料 schema 和記錄。

先決條件

在使用 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

所需 schema.prisma 檔案的路徑可以在 package.json 檔案中的 prisma.schema 入口中指定。該路徑定義了當您執行任何 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://:8080
  • HTTPS_PROXYhttps_proxy:HTTPS 流量的代理 URL,例如 https://:8080
© . This site is unofficial and not affiliated with Prisma Data, Inc.