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

Prisma CLI リファレンス

このドキュメントでは、Prisma CLI コマンド、引数、およびオプションについて説明します。

コマンド

version (-v)

version コマンドは、現在の prisma バージョン、プラットフォーム、およびエンジンバイナリに関する情報を出力します。

オプション

version コマンドは、その動作を変更するために、次のオプションを認識します。

オプション必須説明
--jsonいいえバージョン情報を JSON 形式で出力します。

バージョン情報を出力する
prisma version
表示CLI結果
Environment variables loaded from .env
prisma : 2.21.0-dev.4
@prisma/client : 2.21.0-dev.4
Current platform : windows
Query Engine : query-engine 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\query-engine-windows.exe)
Migration Engine : migration-engine-cli 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\migration-engine-windows.exe)
Format Binary : prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\@prisma\engines\prisma-fmt-windows.exe)
Default Engines Hash : 60ba6551f29b17d7d6ce479e5733c70d9c00860e
Studio : 0.365.0
バージョン情報を出力する (-v)
prisma -v
表示CLI結果
Environment variables loaded from .env
prisma : 2.21.0-dev.4
@prisma/client : 2.21.0-dev.4
Current platform : windows
Query Engine : query-engine 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\query-engine-windows.exe)
Migration Engine : migration-engine-cli 2fb8f444d9cdf7c0beee7b041194b42d7a9ce1e6 (at C:\Users\veroh\AppData\Roaming\npm\node_modules\@prisma\cli\migration-engine-windows.exe)
Format Binary : prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\@prisma\engines\prisma-fmt-windows.exe)
Default Engines Hash : 60ba6551f29b17d7d6ce479e5733c70d9c00860e
Studio : 0.365.0
バージョン情報を JSON として出力する
prisma version --json
表示CLI結果
Environment variables loaded from .env
{
"prisma": "2.21.0-dev.4",
"@prisma/client": "2.21.0-dev.4",
"current-platform": "windows",
"query-engine": "query-engine 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\query-engine-windows.exe)",
"migration-engine": "migration-engine-cli 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\migration-engine-windows.exe)",
"format-binary": "prisma-fmt 60ba6551f29b17d7d6ce479e5733c70d9c00860e (at node_modules\\@prisma\\engines\\prisma-fmt-windows.exe)",
"default-engines-hash": "60ba6551f29b17d7d6ce479e5733c70d9c00860e",
"studio": "0.365.0"
}

init

現在のディレクトリ内に新しい Prisma ORM プロジェクトをブートストラップします。

init コマンドは、既存のファイルを解釈しません。代わりに、現在のディレクトリ内に最小限の schema.prisma ファイルを含む prisma ディレクトリを作成します。

引数

引数必須説明デフォルト
--datasource-providerいいえdatasource ブロックの provider フィールドの値を指定します。オプションは prisma+postgressqlitepostgresqlmysqlsqlservermongodbcockroachdb です。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
表示CLI結果
✔ Your Prisma schema was created at prisma/schema.prisma.
You can now open it in your favorite editor.

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

More information in our documentation:
https://pris.ly/d/getting-started

prisma init --datasource-provider sqlite を実行する

prisma init --datasource-provider sqlite

コマンド出力には、生成されたファイルの使用方法と、プロジェクトで Prisma 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
表示Prisma スキーマ結果
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
prisma init --preview-feature multiSchema --preview-feature metrics
表示Prisma スキーマ結果
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

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

生成されたアセット

prisma/schema.prisma

スキーマを定義するための初期 schema.prisma ファイル

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

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

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

.env

プロジェクトの環境変数を定義するファイル

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

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

DATABASE_URL="file:./dev.db"

prisma init --url mysql://user:password@localhost:3306/mydb を実行する

--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 つのことを行います。

  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 を再生成します。
warning

非推奨の警告

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
表示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 Language を検証します。

引数

引数必須説明デフォルト
--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 スキーマに追加します。

warning

警告: このコマンドは、現在の 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
表示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 フラグの背後で利用可能です。

warning

このコマンドは現在、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) の生成をトリガーします
warning

このコマンドは、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. シードスクリプトを実行します
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 スキーマの変更を検索しません
  • データベースをリセットしたり、アーティファクトを生成したりしません
  • シャドウデータベースに依存しません
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

情報

このコマンドは、MongoDB では部分的にのみサポートされています。詳細については、以下のコマンドオプションを参照してください。

このコマンドは、2つのデータベーススキーマソースを比較し、最初の状態から2番目の状態への移行の説明を出力します。

出力は、人間が読めるサマリー(デフォルト)または実行可能なスクリプトとして提供できます。

warning

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を自動的に開くブラウザ。<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が使用するファイルを定義します。絶対パスと相対パスの両方がサポートされています。

"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。例:http://localhost:8080
  • HTTPS_PROXY または https_proxy:httpsトラフィックのプロキシURL。例:https://localhost:8080