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ディレクトリを作成します。
デフォルトでは、プロジェクトはローカルのPrisma Postgresインスタンスをセットアップしますが、--datasource-providerオプションを使用して別のデータベースを選択できます。
引数
| 引数 | 必須 | 説明 | デフォルト |
|---|---|---|---|
--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 | いいえ | カスタムdatasourceの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 devコマンドを実行して、ローカルのPrisma Postgresインスタンスとやり取りします(例:マイグレーションを実行したり、クエリを実行したりするため)。
prisma init --datasource-provider sqliteを実行
prisma init --datasource-provider sqlite
このコマンドの出力には、生成されたファイルの使用方法や、プロジェクトでPrisma ORMの使用を開始する方法に関する役立つ情報が含まれています。
prisma init --dbを実行
prisma init --db
このコマンドは新しいPrisma Postgresインスタンスを作成します。これには、認証が必要です。認証せずに初めて実行すると、コマンドはブラウザを開いてConsoleにログインするように促します。
prisma init --prompt "Simple habit tracker application"を実行
prisma init --prompt "Simple habit tracker application"
このコマンドはPrismaスキーマを足場として構築し、新しいPrisma Postgresインスタンスにデプロイします。これには、認証が必要です。認証せずに初めて実行すると、コマンドはブラウザを開いてConsoleにログインするように促します。
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
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を実行
initコマンドの--url引数を使用すると、Prismaの初期化時にプレースホルダーのデータベースURLに依存する代わりに、カスタムのデータソース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"
dev
devコマンドは、Prisma ORMコマンドを実行できるローカルのPrisma Postgresデータベースを起動します。開発およびテストの目的に役立ち、本番環境で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
$ 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ファイルで定義されている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 ClientがPrisma Accelerateで動作するためのオプションを必要としなくなったため、--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 | いいえ | デフォルトのパスではなく、処理する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ファイルを新しいスキーマで上書きします。手動での変更やカスタマイズが失われる可能性があります。重要な変更が含まれている場合、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
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)に変更されました。
MongoDBには適用されません migrate devおよび関連コマンドの代わりに、MongoDBではdb pushが使用されます。
migrate dev
開発環境のみで使用。シャドウデータベースが必要です。
migrate devコマンドは
- シャドウデータベース内の既存のマイグレーション履歴を再実行して、スキーマドリフト(編集または削除されたマイグレーションファイル、またはデータベーススキーマへの手動変更)を検出します。
- 保留中のマイグレーションをシャドウデータベースに適用します(例:同僚によって作成された新しいマイグレーション)。
migrate devを実行する前にPrismaスキーマに加えた変更から、新しいマイグレーションを生成します。- 未適用すべてのマイグレーションを開発データベースに適用し、
_prisma_migrationsテーブルを更新します。 - アーティファクト(例: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
開発環境のみで使用
このコマンドは
- 可能であればデータベース/スキーマを削除するか、環境がデータベース/スキーマの削除を許可しない場合はソフトリセットを実行します。
- データベース/スキーマが削除された場合、同じ名前で新しいデータベース/スキーマを作成します。
- すべてのマイグレーションを適用
- シードスクリプトを実行
このコマンドは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
このコマンドは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を自動的に開くブラウザ。 | <あなたのデフォルトブラウザ> |
-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。例:https://:8080HTTPS_PROXYまたはhttps_proxy: HTTPSトラフィック用のプロキシURL。例:https://:8080