跳到主要內容

錯誤訊息參考

有關如何處理異常和錯誤程式碼的更多資訊,請參閱處理異常和錯誤

Prisma Client 錯誤型別

Prisma Client 會丟擲不同型別的錯誤。以下列出了異常型別及其文件化的資料欄位

PrismaClientKnownRequestError

如果查詢引擎返回與請求相關的已知錯誤(例如,唯一約束衝突),Prisma Client 會丟擲 PrismaClientKnownRequestError 異常。

屬性描述
程式碼Prisma 特定的錯誤程式碼
元資料關於錯誤的附加資訊——例如,導致錯誤的欄位:{ target: [ 'email' ] }
訊息錯誤程式碼關聯的錯誤訊息。
客戶端版本Prisma Client 版本(例如,2.19.0

PrismaClientUnknownRequestError

如果查詢引擎返回與請求相關的、沒有錯誤程式碼的錯誤,Prisma Client 會丟擲 PrismaClientUnknownRequestError 異常。

屬性描述
訊息錯誤程式碼關聯的錯誤訊息。
客戶端版本Prisma Client 版本(例如,2.19.0

PrismaClientRustPanicError

如果底層引擎崩潰並以非零退出程式碼退出,Prisma Client 會丟擲 PrismaClientRustPanicError 異常。在這種情況下,必須重新啟動 Prisma Client 或整個 Node 程序。

屬性描述
訊息錯誤程式碼關聯的錯誤訊息。
客戶端版本Prisma Client 版本(例如,2.19.0

PrismaClientInitializationError

如果查詢引擎啟動和資料庫連線建立過程中出現問題,Prisma Client 會丟擲 PrismaClientInitializationError 異常。這通常發生在:

  • 呼叫 prisma.$connect() 時 或
  • 執行第一個查詢時

可能發生的錯誤包括:

  • 提供的資料庫憑據無效
  • 在提供的 hostname 和埠下沒有資料庫伺服器執行
  • 查詢引擎 HTTP 伺服器要繫結的埠已被佔用
  • 缺少或無法訪問的環境變數
  • 找不到當前平臺的查詢引擎二進位制檔案(generator 塊)
屬性描述
錯誤程式碼Prisma 特定的錯誤程式碼。
訊息錯誤程式碼關聯的錯誤訊息。
客戶端版本Prisma Client 版本(例如,2.19.0

PrismaClientValidationError

如果驗證失敗,Prisma Client 會丟擲 PrismaClientValidationError 異常——例如

  • 缺少欄位——例如,建立新記錄時 data: {} 屬性為空
  • 提供了不正確的欄位型別(例如,將 Boolean 欄位設定為 "Hello, I like cheese and gold!"
屬性描述
訊息錯誤訊息。
客戶端版本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_name} 在 {database_file_path} 不存在"

"資料庫 {database_name}.{database_schema_name} 在資料庫伺服器 {database_host}:{database_port} 上不存在。"

"資料庫 {database_name} 在資料庫伺服器 {database_host}:{database_port} 上不存在。"

P1008

"操作在 {time} 後超時"

P1009

"資料庫 {database_name} 在資料庫伺服器 {database_host}:{database_port} 上已存在"

P1010

"使用者 {database_user} 在資料庫 {database_name} 上被拒絕訪問"

P1011

"開啟 TLS 連線時出錯: {message}"

P1012

注意:如果您在將 Prisma ORM 升級到 4.0.0 或更高版本後遇到錯誤程式碼 P1012,請參閱4.0.0 版本升級指南。在 4.0.0 版本之前有效的 Schema 在 4.0.0 及更高版本中可能無效。升級指南解釋瞭如何更新您的 Schema 以使其有效。

"{full_error}"

可能的 P1012 錯誤訊息

  • "引數 {} 缺失。"
  • "函式 {} 需要個引數,但收到."
  • "屬性 @{} 中缺少引數 {}。"
  • "資料來源塊 {} 中缺少引數 {}。"
  • "生成器塊 {} 中缺少引數 {}。"
  • "解析屬性 @{} 時出錯"
  • "屬性 @{} 已被定義兩次。"
  • "無法定義資料庫名為 {} 的模型,因為已存在同名模型:{}"
  • "{} 是保留的標量型別名稱,不能使用。"
  • 無法定義,因為已存在同名。
  • {} 已在...中定義."
  • "引數 {} 已被指定為未命名引數。"
  • "引數 {} 已被指定。"
  • "無此引數。"
  • "欄位 {} 已在模型 {} 上定義。"
  • "模型 {} 中的欄位 {} 不能是列表。當前聯結器不支援原始型別列表。"
  • "索引名 {} 被宣告多次。在當前聯結器下,索引名必須全域性唯一。"
  • "值 {} 已在列舉 {} 上定義。"
  • "未知屬性:@{}。"
  • "未知函式:{}。"
  • "未知資料來源提供者:{}。"
  • "shadowDatabaseUrl 與資料來源 {} 的 url 相同。請指定一個不同的資料庫作為影子資料庫。"
  • "未知預覽功能 {}。期望以下之一"
  • "{} 不是一個有效值,對於."
  • "型別 {} 既不是內建型別,也不引用其他模型、自定義型別或列舉。"
  • "型別 {} 不是內建型別。"
  • "意外的 token。期望以下之一"
  • 環境變數未找到."
  • 期望一個值,但收到{}。"
  • 期望一個值,但在解析 {} 時失敗."
  • "驗證模型 {} 時出錯"
  • "驗證模型 {} 中欄位 {} 時出錯"
  • "驗證資料來源 {datasource} 時出錯: {message}"
  • "驗證列舉 {} 時出錯"
  • 驗證時出錯"

P1013

"提供的資料庫字串無效。{details}"

P1014

"模型 {model} 的底層 {kind} 不存在。"

P1015

"您的 Prisma Schema 正在使用資料庫版本不支援的功能。
資料庫版本: {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_position} 處解析查詢 {query_parsing_error} 失敗"

P2009

"在 {query_position} 處驗證查詢 {query_validation_error} 失敗"

P2010

"原始查詢失敗。程式碼: {code}。訊息: {message}"

P2011

"在 {constraint} 上發生空值約束衝突"

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

"操作失敗,因為它依賴於一個或多個必需但未找到的記錄。{cause}"

P2026

"當前資料庫提供者不支援查詢所使用的功能: {feature}"

P2027

"查詢執行期間資料庫上發生多個錯誤: {errors}"

P2028

"事務 API 錯誤: {error}"

P2029

"查詢引數限制超出錯誤: {message}"

P2030

"找不到可用於搜尋的全文索引,請嘗試將 @@fulltext([Fields...]) 新增到您的 schema"

P2031

"Prisma 需要執行事務,這要求您的 MongoDB 伺服器作為副本集執行。詳情請參閱: https://pris.ly/d/mongodb-replica-set"

P2033

"查詢中使用的數字不適合 64 位有符號整數。如果您嘗試儲存大整數,請考慮使用 BigInt 作為欄位型別"

P2034

"事務因寫入衝突或死鎖而失敗。請重試您的事務"

P2035

"資料庫斷言衝突: {database_error}"

P2036

"外部聯結器中出錯 (id {id})"

P2037

"開啟的資料庫連線過多: {message}"

Prisma Migrate (Schema 引擎)

警告

Schema 引擎以前稱為 Migration 引擎。此更改在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

"資料庫 Schema 不為空。閱讀更多關於如何基線現有生產資料庫的資訊: https://pris.ly/d/migrate-baseline"

P3006

"遷移 {migration_name} 未能幹淨地應用於影子資料庫。
{error_code}錯誤
{inner_error}"

P3007

"Schema 引擎中尚不允許使用某些請求的預覽功能。在使用遷移之前,請將其從資料模型中移除。(已阻止: {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

"您的 Schema 中指定的資料來源提供者 {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

"內省操作未能生成 Schema 檔案: {introspection_error}"

P4001

"內省的資料庫為空。"

P4002

"內省資料庫的 Schema 不一致: {explanation}"

Prisma Accelerate

與 Prisma Accelerate 相關的錯誤以 P6xxx 開頭,除了P5011

P6000 (伺服器錯誤)

捕獲所有其他錯誤的通用錯誤。

P6001 (無效資料來源)

URL 格式錯誤;例如,它沒有使用 prisma:// 協議。

P6002 (未經授權)

連線字串中的 API 金鑰無效。

P6003 (計劃限制已達)

當前計劃的包含使用量已超出。這僅在免費計劃中可能發生。

P6004 (查詢超時)

Accelerate 的全域性超時已超出。您可以在此處找到該限制。

另請參閱故障排除指南以獲取更多資訊。

P6005 (無效引數)

使用者提供了無效引數。目前僅與事務方法相關。例如,設定了過高的超時。您可以在此處找到該限制。

P6006 (不支援的版本)

所選的 Prisma 版本與 Accelerate 不相容。當用戶使用我們偶爾清理的不穩定開發版本時,可能會發生這種情況。

P6008 (連線錯誤|引擎啟動錯誤)

引擎啟動失敗。例如,無法建立到資料庫的連線。

另請參閱故障排除指南以獲取更多資訊。

P6009 (響應大小超出限制)

Accelerate 的全域性響應大小限制已超出。您可以在此處找到該限制。

另請參閱故障排除指南以獲取更多資訊。

P6010 (專案已停用錯誤)

您的 Accelerate 專案已停用。請重新啟用它才能使用。

P5011 (請求過多)

此錯誤表示請求量超出限制。請實施退避策略並稍後重試。如需高併發工作負載的幫助,請聯絡支援

© . This site is unofficial and not affiliated with Prisma Data, Inc.