共享包与示例
Prisma 构建的扩展
以下是我们在 Prisma 构建的扩展列表
扩展 | 描述 |
---|---|
@prisma/extension-accelerate | 启用 Accelerate, 一个在全球 300 多个地点可用、内置连接池的全局数据库缓存 |
@prisma/extension-read-replicas | 为 Prisma Client 添加读副本支持 |
Prisma 社区构建的扩展
以下是社区创建的扩展列表。如果你想创建自己的包,请参考共享的 Prisma Client 扩展文档。
扩展 | 描述 |
---|---|
prisma-extension-supabase-rls | 为 Prisma 添加对 Supabase 行级安全的支持 |
prisma-extension-bark | 实现 Materialized Path 模式,允许你在 Prisma 中轻松创建和交互树形结构 |
prisma-cursorstream | 添加基于游标的流处理 |
prisma-gpt | 允许你使用自然语言查询数据库 |
prisma-extension-caching | 添加缓存复杂查询的能力 |
prisma-extension-cache-manager | 使用任何 cache-manager 兼容的缓存来缓存模型查询 |
prisma-extension-random | 允许你查询数据库中的随机行 |
prisma-paginate | 添加对分页读取查询的支持 |
prisma-extension-streamdal | 添加使用 Streamdal 的 Code-Native 数据管道支持 |
prisma-rbac | 添加可定制的基于角色的访问控制 |
prisma-extension-redis | 专门用于使用 Redis 和 Dragonfly 数据库进行高效缓存和缓存失效的 Prisma 扩展 |
prisma-cache-extension | 用于使用 Redis 进行缓存和缓存失效的 Prisma 扩展(将支持其他存储选项) |
prisma-extension-casl | 利用 CASL 在大多数简单和嵌套查询上强制执行授权逻辑的 Prisma 客户端扩展。 |
prisma-emitter-extension | 基于可配置监听器在 CRUD 操作上触发事件的 Prisma 扩展。 |
如果你构建了一个扩展并希望在此展示,请随意通过提交 pull request 将其添加到列表中。
示例
信息
以下示例扩展仅作为示例提供,不提供任何保证。它们旨在展示如何使用本文档中记录的方法创建 Prisma Client 扩展。我们建议将这些示例作为构建您自己的扩展的灵感来源。
示例 | 描述 |
---|---|
audit-log-context | 将当前用户的 ID 作为上下文提供给 Postgres 审计日志触发器 |
callback-free-itx | 添加一个无需回调即可开始交互式事务的方法 |
computed-fields | 为结果对象添加虚拟/计算字段 |
input-transformation | 转换传递给 Prisma Client 查询的输入参数以过滤结果集 |
input-validation | 对传递给变更方法的输入参数运行自定义验证逻辑 |
instance-methods | 为结果对象添加类似 Active Record 的方法,例如 save() 和 delete() |
json-field-types | 对存储在 JSON 列中的数据使用强类型运行时解析 |
model-filters | 添加可重用的过滤器,可以组合成模型的复杂 where 条件 |
obfuscated-fields | 防止敏感数据(例如 password 字段)包含在结果中 |
query-logging | 使用简单的查询计时和日志记录包装 Prisma Client 查询 |
readonly-client | 创建一个只允许读取操作的客户端 |
retry-transactions | 为事务添加指数退避和抖动重试机制 |
row-level-security | 使用 Postgres 行级安全策略隔离多租户应用中的数据 |
static-methods | 为 Prisma Client 模型添加自定义查询方法 |
transformed-fields | 演示如何使用结果扩展转换查询结果并为应用添加国际化 (i18n) |
exists-method | 演示如何为所有模型添加 exists 方法 |
update-delete-ignore-not-found | 演示如何为所有模型添加 updateIgnoreOnNotFound 和 deleteIgnoreOnNotFound 方法。 |
深入了解
- 了解更多关于 Prisma Client 扩展。