跳到主要內容

共用套件 & 範例

Prisma 製作的擴充功能

以下是我們在 Prisma 建立的擴充功能列表

擴充功能描述
@prisma/extension-accelerate啟用 Accelerate,這是一個全球資料庫快取,在 300 多個地點可用,並內建連線池
@prisma/extension-pulse啟用 Pulse,這項服務可從您的資料庫擷取變更事件,並立即將其傳遞到您的應用程式。
@prisma/extension-read-replicas為 Prisma Client 新增讀取副本支援

Prisma 社群製作的擴充功能

以下是由社群建立的擴充功能列表。如果您想建立自己的套件,請參閱共用 Prisma Client 擴充功能文件。

擴充功能描述
prisma-extension-supabase-rls新增對 Supabase Row Level Security 與 Prisma 的支援
prisma-extension-bark實作具體化路徑模式,讓您可以輕鬆地在 Prisma 中建立和互動樹狀結構
prisma-cursorstream新增基於游標的串流
prisma-gpt讓您可以使用自然語言查詢資料庫
prisma-extension-caching新增快取複雜查詢的功能
prisma-extension-cache-manager使用任何 cache-manager 相容快取來快取模型查詢
prisma-extension-random讓您可以查詢資料庫中的隨機列
prisma-paginate新增對分頁讀取查詢的支援
prisma-extension-streamdal新增使用 Streamdal 支援程式碼原生資料管線
prisma-rbac新增可自訂的角色型存取控制
prisma-extension-redis廣泛的 Prisma 擴充功能,旨在利用 Redis 和 Dragonfly Databases 實現高效的快取和快取失效
prisma-cache-extension用於使用 Redis 快取和使快取失效的 Prisma 擴充功能(將支援其他儲存選項)
prisma-extension-caslPrisma client 擴充功能,利用 CASL 對大多數簡單和巢狀查詢強制執行授權邏輯。

如果您已建立擴充功能並希望看到它被收錄,請隨時開啟 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示範如何為所有模型新增 updateIgnoreOnNotFounddeleteIgnoreOnNotFound 方法。

更深入了解