Prisma CLI リファレンス
このドキュメントでは、Prisma CLI コマンド、引数、およびオプションについて説明します。
コマンド
version
(-v
)
version
コマンドは、現在の prisma
バージョン、プラットフォーム、およびエンジンバイナリに関する情報を出力します。
オプション
version
コマンドは、その動作を変更するために、次のオプションを認識します。
オプション | 必須 | 説明 |
---|---|---|
--json | いいえ | バージョン情報を JSON 形式で出力します。 |
例
バージョン情報を出力する
prisma version
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
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
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 フィールドの値を指定します。オプションは prisma+postgres 、sqlite 、postgresql 、mysql 、sqlserver 、mongodb 、cockroachdb です。 | postgresql |
--db | いいえ | --datasource-provider prisma+postgres の省略形構文。新しい Prisma Postgres インスタンスを作成します。認証が必要です。. | |
--prompt (または --vibe ) | いいえ | プロンプトに基づいて Prisma スキーマをスキャフォールドし、新しい Prisma Postgres インスタンスにデプロイします。認証が必要です。. | |
--url | いいえ | カスタムデータソース URL を定義します。 | |
--generator-provider | いいえ | 使用するジェネレータプロバイダを定義します。 | prisma-client-js |
--preview-feature | いいえ | 使用する プレビュー機能 を定義します。複数のプレビュー機能を定義するには、各プレビュー機能に対してフラグを複数回指定する必要があります。例を参照してください。 | |
--output | いいえ | 生成されたクライアントの出力場所を指定します。 | node_modules/.prisma/client |
--with-model | いいえ | 初期 Prisma スキーマにシンプルな User モデルを追加します。バージョン 5.14.0 以降で利用可能です。 |
例
prisma init
を実行する
prisma init
✔ 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 ORM の使用を開始する方法に関する役立つ情報が含まれています。
prisma init --db
を実行する
prisma init --db
このコマンドは、新しい Prisma Postgres インスタンスを作成します。認証が必要なことに注意してください。初めて認証なしで実行すると、コマンドはブラウザを開いてコンソールにログインするように求めます。
prisma init --prompt "Simple habit tracker application"
を実行する
prisma init --prompt "Simple habit tracker application"
このコマンドは、Prisma スキーマをスキャフォールドし、新しい Prisma Postgres インスタンスにデプロイします。認証が必要なことに注意してください。初めて認証なしで実行すると、コマンドはブラウザを開いてコンソールにログインするように求めます。
prisma init --preview-feature
を実行する
prisma init --preview-feature multiSchema
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
prisma init --preview-feature multiSchema --preview-feature metrics
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
を実行する
--url
引数付きの init
コマンドを使用すると、プレースホルダーデータベース URL に依存する代わりに、Prisma の初期化中にカスタムデータソース URL を指定できます。
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
ファイルで定義された generator
および data model
ブロックに基づいて、Prisma Client などのアセットを生成します。
generate
コマンドは、prisma-client-js
ジェネレータで Prisma Client を生成するために最もよく使用されます。これは次の 3 つのことを行います。
- 現在のディレクトリと親ディレクトリを検索して、該当する
npm
プロジェクトを見つけます。見つからない場合は、現在のディレクトリにpackage.json
ファイルを作成します。 @prisma/client
がまだ存在しない場合は、npm
プロジェクトにインストールします。- 現在のディレクトリを検査して、処理する Prisma スキーマを見つけます。次に、カスタマイズされた Prisma Client をプロジェクト用に生成します。
前提条件
generate
コマンドを使用するには、schema.prisma
ファイルにジェネレータ定義を追加する必要があります。Prisma Client を生成するために使用される prisma-client-js
ジェネレータは、schema.prisma
ファイルに次を含めることで追加できます。
generator client {
provider = "prisma-client-js"
}
オプション
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
--data-proxy | いいえ | generate コマンドは、Prisma 5.0.0 より前の 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 Accelerate で使用するために、エンジンを伴わない Prisma Client を生成します。--data-proxy および --accelerate と相互に排他的です。Prisma ORM 5.2.0 以降で利用可能です。 | |
--no-hints | いいえ | generate コマンドは、ターミナルに出力される使用方法のヒントなしで Prisma Client を生成します。Prisma ORM 5.16.0 以降で利用可能です。 | |
--allow-no-models | いいえ | generate コマンドは、モデルを生成せずに Prisma Client を生成します。 | |
--watch | いいえ | generate コマンドは、schema.prisma ファイルの監視を続け、ファイルが変更されると Prisma Client を再生成します。 |
非推奨の警告
Prisma 5.2.0 以降、Prisma Accelerate で動作させるためのオプションが Prisma Client に不要になったため、--data-proxy
および --accelerate
は --no-engine
に置き換えられました。すべてのオプションは利用可能で同様に機能しますが、サーバーレスおよびエッジ機能にデプロイされるアプリのサイズに大きく影響するため、--no-engine
を推奨します。
引数
引数 | 必須 | 説明 | デフォルト | |
---|---|---|---|---|
--schema | いいえ | デフォルトパスの代わりに処理する目的の schema.prisma ファイルへのパスを指定します。絶対パスと相対パスの両方がサポートされています。 | ./schema.prisma 、./prisma/schema.prisma | |
--generator | いいえ | アセットの生成に使用するジェネレータを指定します。このオプションは複数回指定して、複数のジェネレータを含めることができます。デフォルトでは、ターゲットスキーマ内のすべてのジェネレータが実行されます。 |
例
デフォルトの schema.prisma
パスを使用して Prisma Client を生成する
prisma generate
✔ 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
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 スキーマファイルの Prisma Schema Language を検証します。
引数
引数 | 必須 | 説明 | デフォルト |
---|---|---|---|
--schema | いいえ | デフォルトパスの代わりに処理する目的の schema.prisma ファイルへのパスを指定します。絶対パスと相対パスの両方がサポートされています。 | ./schema.prisma 、./prisma/schema.prisma |
例
エラーのないスキーマを検証する
prisma validate
検証エラーのあるスキーマを検証する
prisma validate
format
スキーマの検証、フォーマット、および永続化を含む、Prisma スキーマファイルをフォーマットします。
引数
引数 | 必須 | 説明 | デフォルト |
---|---|---|---|
--schema | いいえ | デフォルトパスの代わりに処理する目的の schema.prisma ファイルへのパスを指定します。絶対パスと相対パスの両方がサポートされています。 | ./schema.prisma 、./prisma/schema.prisma |
--check | いいえ | フォーマットされていないファイルがある場合、失敗します。これは、スキーマが正しくフォーマットされているかどうかを CI で検出するために使用できます。 |
例
エラーのないスキーマを検証する
prisma format
検証エラーのあるスキーマをフォーマットする
prisma format
debug
デバッグとバグレポートのための情報を出力します。
これはバージョン 5.6.0 以降で利用可能です。
引数
引数 | 必須 | 説明 | デフォルト |
---|---|---|---|
--schema | いいえ | デフォルトパスの代わりに処理する目的の schema.prisma ファイルへのパスを指定します。絶対パスと相対パスの両方がサポートされています。 | ./schema.prisma 、./prisma/schema.prisma |
--help / --h | いいえ | ヘルプメッセージを表示します |
例
prisma debug
古いバージョンの Prisma を使用している場合は、次のコマンドを実行してこのコマンドを使用できます。
npx prisma@latest debug
db
db pull
db pull
コマンドはデータベースに接続し、現在のデータベーススキーマを反映する Prisma モデルを Prisma スキーマに追加します。
警告: このコマンドは、現在の schema.prisma
ファイルを新しいスキーマで上書きします。手動での変更やカスタマイズが失われる可能性があります。現在の schema.prisma
ファイルをバックアップするか (または、現在の状態をバージョン管理にコミットして、変更を元に戻せるようにする)、重要な変更が含まれている場合は db pull
を実行する前に必ず行ってください。
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
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
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
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 ではサポートされていません。
このコマンドは、Prisma マイグレーションテーブルと対話せずに、SQL スクリプトをデータベースに適用します。スクリプトは 2 つの入力を受け取ります。
- 標準入力またはファイルで提供できる SQL スクリプト
- データソースの URL または Prisma スキーマファイルへのパスのいずれかであるデータソース
コマンドの出力はコネクタ固有であり、データを返すためのものではなく、成功または失敗を報告するためだけのものです。
こちらも参照してください
前提条件
db execute
コマンドを使用する前に、--url
オプションを使用しない場合は、schema.prisma
ファイル内で有効な datasource
を定義する必要があります。
たとえば、次の datasource
は、現在のディレクトリ内の SQLite データベースファイルを定義します。
datasource db {
provider = "sqlite"
url = "file:my-database.db"
}
オプション
次のデータソース入力のいずれかが必要です
オプション | 説明 |
---|---|
--url | コマンドを実行するデータソースの URL |
--schema | Prisma スキーマファイルへのパス。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) に変更されました。
migrate dev
開発環境専用、シャドウデータベースが必要
migrate dev
コマンド
- シャドウデータベース で既存のマイグレーション履歴を再実行して、スキーマドリフト (編集または削除されたマイグレーションファイル、またはデータベーススキーマへの手動変更) を検出します
- 保留中のマイグレーションをシャドウデータベースに適用します (たとえば、同僚によって作成された新しいマイグレーション)
migrate dev
を実行する前に Prisma スキーマに加えた変更から新しいマイグレーションを生成します- すべての未適用のマイグレーションを開発データベースに適用し、
_prisma_migrations
テーブルを更新します - アーティファクト (たとえば、Prisma Client) の生成をトリガーします
こちらも参照してください
オプション
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
--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
開発環境専用
このコマンド
- 可能であればデータベース/スキーマをドロップするか、環境がデータベース/スキーマの削除を許可しない場合はソフトリセットを実行します
- データベース/スキーマがドロップされた場合は、同じ名前で新しいデータベース/スキーマを作成します
- すべてのマイグレーションを適用します
- シードスクリプトを実行します
オプション
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
--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 スキーマの変更を検索しません
- データベースをリセットしたり、アーティファクトを生成したりしません
- シャドウデータベースに依存しません
オプション
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
--help / --h | いいえ | ヘルプメッセージを表示します |
引数
引数 | 必須 | 説明 | デフォルト |
---|---|---|---|
--schema | いいえ | デフォルトパスの代わりに処理する目的の schema.prisma ファイルへのパスを指定します。絶対パスと相対パスの両方がサポートされています。 | ./schema.prisma ./prisma/schema.prisma |
例
prisma migrate deploy
migrate resolve
migrate resolve
コマンドを使用すると、失敗したマイグレーションを既に適用済み (ベースラインをサポート) またはロールバック済みとしてマークすることにより、本番環境でのマイグレーション履歴の問題を解決できます。
このコマンドは、失敗したマイグレーションでのみ使用できることに注意してください。成功したマイグレーションで使用しようとすると、エラーが表示されます。
オプション
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
--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
テーブル内のエントリを調べ、データベース内のマイグレーションの状態に関する情報をコンパイルします。
例
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
このコマンドは、MongoDB では部分的にのみサポートされています。詳細については、以下のコマンドオプションを参照してください。
このコマンドは、2つのデータベーススキーマソースを比較し、最初の状態から2番目の状態への移行の説明を出力します。
出力は、人間が読めるサマリー(デフォルト)または実行可能なスクリプトとして提供できます。
migrate diff
コマンドは、Prismaでサポートされているデータベース機能のみを比較できます。ビューやトリガーなど、サポートされていない機能のみが2つのデータベース間で異なる場合、migrate diff
はそれらの間に違いを示しません。
コマンドの形式は次のとおりです。
prisma migrate diff --from-... <source1> --to-... <source2>
ここで、--from-...
および --to-...
オプションは、データベーススキーマソースのタイプに基づいて選択されます。サポートされているソースのタイプは次のとおりです。
- ライブデータベース
- マイグレーション履歴
- Prismaスキーマデータモデル
- 空のスキーマ
両方のスキーマソースは、同じデータベースプロバイダーを使用する必要があります。たとえば、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-migrations | Prisma Migrateマイグレーションディレクトリへのパス | MongoDBではサポートされていません |
--from-schema-datamodel | Prismaスキーマファイルへのパス。diffにデータモデルを使用します | |
--from-schema-datasource | Prismaスキーマファイルへのパス。diffにdatasource ブロック内のURLを使用します | |
--from-empty | 移行元のデータモデルが空であると仮定します | |
--from-local-d1 | ローカルD1インスタンスへのパス(詳細はこちら) | 5.12.0から利用可能 |
次のいずれかの --to-...
オプションが必要です
オプション | 説明 | 注記 |
---|---|---|
--to-url | データソースURL | |
--to-migrations | Prisma Migrateマイグレーションディレクトリへのパス | MongoDBではサポートされていません |
--to-schema-datamodel | Prismaスキーマファイルへのパス。diffにデータモデルを使用します | |
--to-schema-datasource | Prismaスキーマファイルへのパス。diffにdatasource ブロック内のURLを使用します | |
--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で指定された2つのデータベースを比較し、デフォルトの人間が読めるサマリーを出力します
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 Data Platform
platform
(早期アクセス)
platform
コマンドは、バージョン 5.10.0
以降のPrisma CLIを通じてPrisma Data Platformへのアクセスを提供します。
- 認証:
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
コマンドを使用すると、データをインタラクティブに操作および管理できます。これは、プロジェクトのデータスキーマとレコードで構成されたウェブアプリを備えたローカルウェブサーバーを起動することで実現します。
前提条件
studio
コマンドを使用する前に、schema.prisma
ファイル内に有効な datasource
を定義する必要があります。
たとえば、次の datasource
は、現在のディレクトリ内の SQLite データベースファイルを定義します。
datasource db {
provider = "sqlite"
url = "file:my-database.db"
}
オプション
studio
コマンドは、次のオプションを認識します
オプション | 必須 | 説明 | デフォルト |
---|---|---|---|
-b , --browser | いいえ | Studioを自動的に開くブラウザ。 | <your-default-browser> |
-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が使用するファイルを定義します。絶対パスと相対パスの両方がサポートされています。
{
"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
が呼び出されたとき、またはトリガーされたときに使用されます。
データベースのシーディング を参照してください
{
"name": "my-project",
"version": "1.0.0",
"prisma": {
"seed": "node ./prisma/seed.js"
}
}
これはバージョン3.0.1以降で利用可能です。
CLIのHTTPプロキシの使用
Prisma CLIは、カスタムHTTPプロキシをサポートしています。これは、企業のファイアウォールの内側にいる場合に特に関連します。
プロキシの使用を有効にするには、次のいずれかの環境変数を指定してください
HTTP_PROXY
またはhttp_proxy
:httpトラフィックのプロキシURL。例:http://localhost:8080
HTTPS_PROXY
またはhttps_proxy
:httpsトラフィックのプロキシURL。例:https://localhost:8080