エラーメッセージリファレンス
例外とエラーコードの操作方法の詳細については、例外とエラーの処理を参照してください。
Prisma Client エラータイプ
Prisma Client はさまざまな種類のエラーをスローします。以下は、例外タイプと、文書化されたデータフィールドのリストです。
PrismaClientKnownRequestError
Prisma Client は、クエリエンジンがリクエストに関連する既知のエラー(たとえば、一意制約違反)を返した場合、PrismaClientKnownRequestError
例外をスローします。
プロパティ | 説明 |
---|---|
code | Prisma 固有のエラーコード。 |
meta | エラーに関する追加情報。たとえば、エラーの原因となったフィールド:{ target: [ 'email' ] } |
message | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Client のバージョン(例:2.19.0 ) |
PrismaClientUnknownRequestError
Prisma Client は、クエリエンジンがエラーコードを持たないリクエストに関連するエラーを返した場合、PrismaClientUnknownRequestError
例外をスローします。
プロパティ | 説明 |
---|---|
message | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Client のバージョン(例:2.19.0 ) |
PrismaClientRustPanicError
Prisma Client は、基盤となるエンジンがクラッシュし、ゼロ以外の終了コードで終了した場合、PrismaClientRustPanicError
例外をスローします。この場合、Prisma Client または Node プロセス全体を再起動する必要があります。
プロパティ | 説明 |
---|---|
message | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Client のバージョン(例:2.19.0 ) |
PrismaClientInitializationError
Prisma Client は、クエリエンジンの起動時やデータベースへの接続作成時に問題が発生した場合、PrismaClientInitializationError
例外をスローします。これは、次のいずれかの状況で発生します。
prisma.$connect()
が呼び出されたとき、または- 最初のクエリが実行されたとき
発生する可能性のあるエラーには、次のものがあります。
- データベースに提供された認証情報が無効である
- 指定されたホスト名とポートでデータベースサーバーが実行されていない
- クエリエンジンの HTTP サーバーがバインドしようとしているポートがすでに使用されている
- 環境変数が欠落しているか、アクセスできない
- 現在のプラットフォームのクエリエンジンバイナリが見つからなかった(
generator
ブロック)
プロパティ | 説明 |
---|---|
errorCode | Prisma 固有のエラーコード。 |
message | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Client のバージョン(例:2.19.0 ) |
PrismaClientValidationError
Prisma Client は、検証が失敗した場合(たとえば、次の場合)、PrismaClientValidationError
例外をスローします。
- フィールドの欠落 - たとえば、新しいレコードを作成するときの空の
data: {}
プロパティ - 提供されたフィールドタイプが正しくない(たとえば、
Boolean
フィールドを"Hello, I like cheese and gold!"
に設定する)
プロパティ | 説明 |
---|---|
message | エラーメッセージ。 |
clientVersion | Prisma Client のバージョン(例:2.19.0 ) |
エラーコード
共通
P1000
"{database_host} のデータベースサーバーに対する認証に失敗しました。提供された {database_user} のデータベース認証情報が無効です。{database_host} のデータベースサーバーに有効なデータベース認証情報を提供してください。"
P1001
"{database_host}:{database_port} のデータベースサーバーに到達できません。データベースサーバーが {database_host}:{database_port} で実行されていることを確認してください。"
P1002
"{database_host}:{database_port} のデータベースサーバーに到達しましたが、タイムアウトしました。もう一度お試しください。データベースサーバーが {database_host}:{database_port} で実行されていることを確認してください。"
P1003
"{database_file_path} にデータベース {database_file_name} が存在しません"
"{database_host}:{database_port} のデータベースサーバーにデータベース {database_name}.{database_schema_name}
が存在しません。"
"{database_host}:{database_port} のデータベースサーバーにデータベース {database_name}
が存在しません。"
P1008
"オペレーションが {time}
後にタイムアウトしました"
P1009
"{database_host}:{database_port} のデータベースサーバーにデータベース {database_name}
がすでに存在します"
P1010
"ユーザー {database_user}
はデータベース {database_name}
へのアクセスを拒否されました"
P1011
"TLS 接続を開くエラー:{message}"
P1012
注: Prisma ORM をバージョン 4.0.0 以降にアップグレードした後にエラーコード P1012 が表示される場合は、バージョン 4.0.0 アップグレードガイドを参照してください。バージョン 4.0.0 より前は有効だったスキーマが、バージョン 4.0.0 以降では無効になる場合があります。アップグレードガイドでは、スキーマを更新して有効にする方法について説明しています。
"{full_error}"
考えられる P1012 エラーメッセージ
- "引数
{}
がありません。" - "関数
{}
は引数を取りますが、." - "属性
@{}
に引数{}
がありません。" - "データソースブロック
{}
に引数{}
がありません。" - "ジェネレーターブロック
{}
に引数{}
がありません。" - "属性
@{}
の解析エラー" - "属性
@{}
が 2 回定義されています。" - "データベース名
{}
を持つモデルは、この名前を持つ別のモデル{}
が存在するため定義できませんでした" - "
{}
は予約されたスカラー型名であり、使用できません。" - 「
{}
は、その名前を持つがすでに存在するため、定義できません。」 - "キー
{}
はですでに定義されています." - "引数
{}
はすでに名前のない引数として指定されています。" - "引数
{}
はすでに指定されています。" - "そのような引数はありません。"
- "フィールド
{}
はモデル{}
ですでに定義されています。" - "モデル
{}
のフィールド{}
はリストにできません。現在のコネクターはプリミティブ型のリストをサポートしていません。" - "インデックス名
{}
が複数回宣言されています。現在のコネクターでは、インデックス名はグローバルに一意である必要があります。" - "値
{}
は enum{}
ですでに定義されています。" - "不明な属性:
@{}
。" - "不明な関数:
{}
。" - "不明なデータソースプロバイダー:
{}
。" - "shadowDatabaseUrl はデータソース
{}
の url と同じです。別のデータベースをシャドウデータベースとして指定してください。" - "プレビュー機能
{}
は不明です。次のいずれかが必要です" - "
{}
はの有効な値ではありません." - "型
{}
は、組み込み型でも、別のモデル、カスタム型、または enum を参照するものでもありません。" - "型
{}
は組み込み型ではありません。" - "予期しないトークン。次のいずれかが必要です"
- "環境変数が見つかりません."
- "を予期しましたが値、しかし値
{}
を受信しました。" - "を予期しましたが値、しかし
{}
の解析中に失敗しました." - "モデル
{}
の検証エラー" - "モデル
{}
のフィールド{}
の検証エラー" - "データソース
{datasource}
の検証エラー:{message}" - "enum
{}
の検証エラー" - "の検証エラー"
P1013
"提供されたデータベース文字列が無効です。{details}"
P1014
"モデル {model}
の基盤となる {kind} が存在しません。"
P1015
"Prisma スキーマは、データベースのバージョンでサポートされていない機能を使用しています。
データベースバージョン:{database_version}
エラー
{errors}"
P1016
"生のクエリのパラメーター数が正しくありません。期待値:{expected}
、実際の値:{actual}
。"
P1017
"サーバーが接続を閉じました。"
Prisma Client(クエリエンジン)
P2000
"列に提供された値が、列の型に対して長すぎます。列:{column_name}"
P2001
"where 条件({model_name}.{argument_name} = {argument_value}
)で検索されたレコードが存在しません"
P2002
"{constraint} で一意制約が失敗しました"
P2003
"フィールドで外部キー制約が失敗しました:{field_name}
"
P2004
"データベースで制約が失敗しました:{database_error}
"
P2005
"フィールド {field_name}
のデータベースに格納されている値 {field_value}
が、フィールドの型に対して無効です"
P2006
"{model_name}
フィールド {field_name}
に提供された値 {field_value}
が無効です"
P2007
"データ検証エラー {database_error}
"
P2008
"クエリ {query_parsing_error}
の解析に失敗しました({query_position}
)"
P2009
"クエリの検証に失敗しました:{query_validation_error}
({query_position}
)"
P2010
"生のクエリが失敗しました。コード:{code}
。メッセージ:{message}
"
P2011
"{constraint} で NULL 制約違反"
P2012
"{path}
で必須の値がありません"
P2013
"{object_name}
のフィールド {field_name}
に必須の引数 {argument_name}
がありません。"
P2014
"試行している変更は、{model_a_name}
モデルと {model_b_name}
モデル間の必須リレーション '{relation_name}' に違反します。"
P2015
"関連レコードが見つかりませんでした。{details}"
P2016
"クエリ解釈エラー。{details}"
P2017
"{parent_name}
モデルと {child_name}
モデル間のリレーション {relation_name}
のレコードが接続されていません。"
P2018
"必須の接続されたレコードが見つかりませんでした。{details}"
P2019
"入力エラー。{details}"
P2020
"型の範囲外の値。{details}"
P2021
"テーブル {table}
が現在のデータベースに存在しません。"
P2022
"列 {column}
が現在のデータベースに存在しません。"
P2023
"一貫性のない列データ:{message}"
P2024
"接続プールから新しい接続を取得する際にタイムアウトしました。(詳細情報:http://pris.ly/d/connection-pool(現在の接続プールタイムアウト:{timeout}、接続制限:{connection_limit})"
P2025
"オペレーションは、必須であるにもかかわらず見つからなかった 1 つ以上のレコードに依存しているため失敗しました。{cause}"
P2026
"現在のデータベースプロバイダーは、クエリで使用されている機能をサポートしていません:{feature}"
P2027
"クエリ実行中にデータベースで複数のエラーが発生しました:{errors}"
P2028
"トランザクション API エラー:{error}"
P2029
"クエリパラメータ制限超過エラー:{message}"
P2030
"検索に使用するフルテキストインデックスが見つかりません。スキーマに @@fulltext([Fields...]) を追加してみてください"
P2031
"Prisma はトランザクションを実行する必要があります。そのためには、MongoDB サーバーをレプリカセットとして実行する必要があります。詳細:https://pris.ly/d/mongodb-replica-set"
P2033
"クエリで使用されている数値が 64 ビット符号付き整数に収まりません。大きな整数を格納しようとしている場合は、フィールドタイプとして BigInt
を使用することを検討してください"
P2034
"書き込み競合またはデッドロックによりトランザクションが失敗しました。トランザクションを再試行してください"
P2035
"データベースでのアサーション違反:{database_error}"
P2036
"外部コネクターのエラー(ID {id})"
P2037
"データベース接続が多すぎます:{message}"
Prisma Migrate(スキーマエンジン)
スキーマエンジンは、以前は Migration Engine と呼ばれていました。この変更は、バージョン 5.0.0 で導入されました。
P3000
"データベースの作成に失敗しました:{database_error}"
P3001
"破壊的な変更とデータ損失の可能性のある移行:{migration_engine_destructive_details}"
P3002
"試行された移行はロールバックされました:{database_error}"
P3003
"移行の形式が変更され、保存された移行は無効になりました。この問題を解決するには、次の手順に従ってください:https://pris.ly/d/migrate"
P3004
"{database_name}
データベースはシステムデータベースであり、prisma migrate で変更しないでください。別のデータベースに接続してください。"
P3005
"データベーススキーマが空ではありません。既存のプロダクションデータベースをベースラインにする方法の詳細:https://pris.ly/d/migrate-baseline"
P3006
"移行 {migration_name}
はシャドウデータベースにクリーンに適用できませんでした。
{error_code}エラー
{inner_error}"
P3007
"要求されたプレビュー機能の一部は、スキーマエンジンではまだ許可されていません。移行を使用する前に、データモデルから削除してください。(ブロック:{list_of_blocked_features})"
P3008
"移行 {migration_name}
は、データベースに適用済みとしてすでに記録されています。"
P3009
"migrate はターゲットデータベースで失敗した移行を見つけました。新しい移行は適用されません。プロダクションデータベースで移行の問題を解決する方法の詳細:https://pris.ly/d/migrate-resolve
{details}
P3010
"移行の名前が長すぎます。200 文字(バイト)を超えてはなりません。"
P3011
"移行 {migration_name}
はデータベースに適用されたことがないため、ロールバックできません。ヒント:移行名全体を渡しましたか?(例:「20201207184859_initial_migration」)"
P3012
"移行 {migration_name}
は失敗状態ではないため、ロールバックできません。"
P3013
"データソースプロバイダーの配列は、migrate ではサポートされなくなりました。データソースを単一のプロバイダーを使用するように変更してください。詳細:https://pris.ly/multi-provider-deprecation"
P3014
"Prisma Migrate はシャドウデータベースを作成できませんでした。データベースユーザーがデータベースを作成する権限を持っていることを確認してください。シャドウデータベースの詳細(および回避策)については、https://pris.ly/d/migrate-shadow を参照してください。
元のエラー:{error_code}
{inner_error}"
P3015
"{migration_file_path} に移行ファイルが見つかりませんでした。ディレクトリを削除するか、移行ファイルを復元してください。"
P3016
"データベースリセットのフォールバック方法が失敗しました。つまり、Migrate はデータベースを完全にクリーンアップできませんでした。元のエラー:{error_code}
{inner_error}"
P3017
"移行 {migration_name} が見つかりませんでした。移行が存在すること、およびディレクトリの完全な名前を含めたことを確認してください。(例:「20201207184859_initial_migration」)"
P3018
"移行の適用に失敗しました。エラーが回復するまで、新しい移行は適用できません。プロダクションデータベースで移行の問題を解決する方法の詳細:https://pris.ly/d/migrate-resolve
移行名:{migration_name}
データベースエラーコード:{database_error_code}
データベースエラー
{database_error} "
P3019
"スキーマで指定されたデータソースプロバイダー {provider}
が、migration_lock.toml で指定されたプロバイダー {expected_provider}
と一致しません。現在の移行ディレクトリを削除し、prisma migrate dev で新しい移行履歴を開始してください。詳細:https://pris.ly/d/migrate-provider-switch"
P3020
"Azure SQL では、シャドウデータベースの自動作成は無効になっています。shadowDatabaseUrl
データソース属性を使用してシャドウデータベースを設定してください。
詳細については、ドキュメントページを参照してください:https://pris.ly/d/migrate-shadow"
P3021
"このデータベースでは外部キーを作成できません。これの処理方法の詳細:https://pris.ly/d/migrate-no-foreign-keys"
P3022
"このデータベースでは、DDL(データ定義言語)SQL ステートメントの直接実行は無効になっています。これの処理方法の詳細については、こちらをご覧ください:https://pris.ly/d/migrate-no-direct-ddl"
prisma db pull
P4000
"イントロスペクション操作がスキーマファイルの生成に失敗しました:{introspection_error}"
P4001
"イントロスペクションされたデータベースは空でした。"
P4002
"イントロスペクションされたデータベースのスキーマに矛盾がありました:{explanation}"
Prisma Accelerate
Prisma Accelerate 関連のエラーは、P5011
を除き、P6xxx
で始まります。
P6000
(ServerError
)
他のすべてのエラーをキャッチする一般的なエラー。
P6001
(InvalidDataSource
)
URL が不正な形式です。たとえば、prisma://
プロトコルを使用していません。
P6002
(Unauthorized
)
接続文字列の API キーが無効です。
P6003
(PlanLimitReached
)
現在のプランの使用量が上限を超えました。これは、無料プランでのみ発生する可能性があります。
P6004
(QueryTimeout
)
Accelerate のグローバルタイムアウトを超過しました。制限はこちらで確認できます。
詳細については、トラブルシューティングガイドも参照してください。
P6005
(InvalidParameters
)
ユーザーが無効なパラメーターを提供しました。現在、トランザクションメソッドにのみ関連しています。たとえば、タイムアウトを高く設定しすぎることなどです。制限はこちらで確認できます。
P6006
(VersionNotSupported
)
選択されたPrismaのバージョンはAccelerateと互換性がありません。これは、ユーザーが不安定な開発バージョンを使用した場合に発生する可能性があります。そのようなバージョンは、時々削除されます。
P6008
(ConnectionError|EngineStartError
)
エンジンの起動に失敗しました。たとえば、データベースへの接続を確立できなかった場合などです。
詳細については、トラブルシューティングガイドも参照してください。
P6009
(ResponseSizeLimitExceeded
)
Accelerateのグローバルレスポンスサイズ制限を超過しました。制限についてはこちらをご覧ください。
詳細については、トラブルシューティングガイドも参照してください。
P6010
(ProjectDisabledError
)
Accelerateプロジェクトが無効になっています。再度利用するには、有効にしてください。
P5011
(Too Many Requests
)
このエラーは、リクエスト量が超過したことを示しています。バックオフストラテジーを実装し、後で再試行してください。予想される高負荷に関するサポートについては、サポートにお問い合わせください。