PostgreSQL 擴充功能
本頁面介紹 PostgreSQL 擴充功能,並說明如何將其與 Prisma ORM 搭配使用。
警告
在 Prisma ORM v4.5.0 到 v6.16.0 之間,您可以透過 postgresqlExtensions 預覽功能旗標(preview feature flag)在 Prisma schema 中啟用擴充功能。此功能旗標已於 v6.16.1 中棄用,目前使用 PostgreSQL 擴充功能的推薦方式是透過自訂遷移(customized migrations)來安裝它們。
什麼是 PostgreSQL 擴充功能?
PostgreSQL 允許您透過安裝並啟用稱為「擴充功能」(extensions)的套件來擴充資料庫功能。例如,citext 擴充功能增加了一種不區分大小寫的字串資料類型。有些擴充功能(如 citext)由 PostgreSQL 直接提供,而其他擴充功能則是由外部開發。如需更多關於擴充功能的資訊,請參閱 PostgreSQL 文件。
若要使用擴充功能,必須先將其安裝在資料庫伺服器的本機檔案系統上。然後,您需要啟用該擴充功能,這會執行一個腳本檔案以添加新功能。
將 PostgreSQL 擴充功能與 Prisma ORM 搭配使用
讓我們透過安裝 citext 擴充功能的範例來進行說明。
1. 建立一個空的遷移檔
執行以下指令以建立一個可供您自訂的空白遷移檔
npx prisma migrate dev --create-only
2. 新增 SQL 陳述式以安裝擴充功能
在 migrations 目錄下新建立的遷移檔案中,加入以下 SQL 陳述式
CREATE EXTENSION IF NOT EXISTS citext;
3. 部署遷移
執行以下指令以部署遷移並將其套用到您的資料庫
npx prisma migrate deploy
4. 使用擴充功能
您現在可以在 Prisma Client 的查詢中使用該擴充功能。如果擴充功能具有目前無法在 Prisma schema 中以原生方式呈現的特殊資料類型,您仍然可以使用 Unsupported 回退類型在模型中定義該類型的欄位。