メインコンテンツへスキップ

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+postgressqlitepostgresqlmysqlsqlservermongodbcockroachdbです。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
表示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インスタンスを作成します。これには、認証が必要です。認証せずに初めて実行すると、コマンドはブラウザを開いて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
表示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

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
表示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ファイルで定義されているgeneratorおよびdata modelブロックに基づいて、Prisma Clientなどのアセットを生成します。

generateコマンドは、prisma-client-jsジェネレーターを使用してPrisma Clientを生成するためによく使用されます。これにより、以下の3つのことが行われます

  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いいえ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
表示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スキーマファイルの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ではサポートされていません。

このコマンドは、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
--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には適用されません
migrate devおよび関連コマンドの代わりに、MongoDBでは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

情報

このコマンドは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-migrationsPrisma MigrateのマイグレーションディレクトリへのパスMongoDBではサポートされていません
--from-schema-datamodelPrismaスキーマファイルへのパス。diffにはデータモデルを使用します。
--from-schema-datasourcePrismaスキーマファイルへのパス。diffにはdatasourceブロック内のURLを使用します。
--from-empty移行元のデータモデルが空であると仮定します。
--from-local-d1ローカルD1インスタンスへのパス(詳細はこちら5.12.0以降で利用可能

以下の--to-...オプションのいずれかが必須です。

オプション説明備考
--to-urlデータソースのURL
--to-migrationsPrisma MigrateのマイグレーションディレクトリへのパスMongoDBではサポートされていません
--to-schema-datamodelPrismaスキーマファイルへのパス。diffにはデータモデルを使用します。
--to-schema-datasourcePrismaスキーマファイルへのパス。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が使用すべきファイルを定義します。絶対パスと相対パスの両方がサポートされています。

"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_PROXY または http_proxy: HTTPトラフィック用のプロキシURL。例:https://:8080
  • HTTPS_PROXY または https_proxy: HTTPSトラフィック用のプロキシURL。例:https://:8080
© . All rights reserved.