错误消息参考有关如何处理异常和错误代码的更多信息,请参阅处理异常和错误。

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 和 port 下没有运行数据库服务器

查询引擎 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 版本之前有效的模式在 4.0.0 及更高版本中可能无效。升级指南解释了如何更新您的模式以使其有效。

"{full_error}"

可能的 P1012 错误消息

"缺少参数 {}。"

"函数 {} 接受参数,但收到."

"属性 @{} 中缺少参数 {}。"

"数据源块 {} 中缺少参数 {}。"

"生成器块 {} 中缺少参数 {}。"

"解析属性 @{} 时出错"

"属性 @{} 定义了两次。"

"无法定义数据库名为 {} 的模型,因为已存在同名模型:{}"

"{} 是保留的标量类型名称,不能使用。"

"这个 {} 无法定义,因为已存在同名实体。"

"键 {} 已在."

"参数 {} 已指定为无名参数。"

"参数 {} 已指定。"

"无此类参数。"

"字段 {} 已在模型 {} 上定义。"

"模型 {} 中的字段 {} 不能是列表。当前连接器不支持原始类型列表。"

"索引名称 {} 被声明多次。对于当前连接器,索引名称必须全局唯一。"

"值 {} 已在枚举 {} 上定义。"

"未知属性:@{}。"

"未知函数:{}。"

"未知数据源提供程序:{}。"

"数据源 {} 的 shadowDatabaseUrl 与 url 相同。请指定一个不同的数据库作为 shadow 数据库。"

"预览功能 {} 未知。预期为以下之一"

"{} 不是有效的."

"类型 {} 既不是内置类型,也不是指其他模型、自定义类型或枚举。"

"类型 {} 不是内置类型。"

"意外的 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_parsing_error} 在 {query_position} 失败"

P2009​

"验证查询 {query_validation_error} 在 {query_position} 失败"

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​

"找不到用于搜索的全文本索引,请尝试在您的 schema 中添加 @@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 (Schema Engine)​

警告Schema Engine 以前称为 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​

"数据库 schema 不为空。阅读更多关于如何基线现有生产数据库的信息:https://pris.ly/d/migrate-baseline"

P3006​

"迁移 {migration_name} 未能干净地应用于 shadow 数据库。{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​

"数据源提供程序数组在迁移中不再受支持。请更改您的数据源以使用单个提供程序。了解更多信息请访问 https://pris.ly/multi-provider-deprecation"

P3014​

"Prisma Migrate 无法创建 shadow 数据库。请确保数据库用户具有创建数据库的权限。阅读更多关于 shadow 数据库(和解决方法)的信息: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 中指定的 datasource provider {provider} 与 migration_lock.toml 中指定的 {expected_provider} 不匹配。请删除当前的迁移目录,并使用 prisma migrate dev 启动新的迁移历史。阅读更多:https://pris.ly/d/migrate-provider-switch"

P3020​

"在 Azure SQL 上已禁用 shadow 数据库的自动创建。请使用 shadowDatabaseUrl 数据源属性设置 shadow 数据库。阅读文档页面了解更多详情: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"

P3023​

"对于当前数据库,您的 prisma 配置中的 externalTables 和 externalEnums 必须只包含完全限定的标识符(例如 schema_name.table_name)。"

P3024​

"对于当前数据库,您的 prisma 配置中的 externalTables 和 externalEnums 必须只包含不带 schema 名称的简单标识符。"

prisma db pull​

P4000​

"内省操作未能生成 schema 文件:{introspection_error}"

P4001​

"内省的数据库为空。"

P4002​

"内省数据库的 schema 不一致:{explanation}"

Prisma Accelerate​

Prisma Accelerate 相关错误以 P6xxx 开头,除了 P5011。

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)​

此错误表示请求量超出限制。请实施退避策略稍后重试。如需预期高工作负载的帮助,请联系支持。