跳到主要內容

部署到 Netlify

本指南涵蓋了將使用 Prisma ORM 的應用程式部署到 Netlify 所需的步驟。

Netlify 是一個雲端平台,用於持續部署、靜態網站和無伺服器函數。 Netlify 與 GitHub 無縫整合,以便在提交時自動部署。 當您按照以下步驟操作時,您將使用該方法建立一個 CI/CD 管道,從 GitHub 儲存庫部署您的應用程式。

先決條件

在您可以按照本指南操作之前,您需要設定您的應用程式以開始部署到 Netlify。 我們建議閱讀 「開始使用 Netlify」 指南以快速了解概觀,以及 「部署函數」 以深入了解您的部署選項。

schema.prisma 中的二進制目標

由於您的程式碼將被部署到 Netlify 的環境中,這不一定與您的開發環境相同,因此您需要設定 binaryTargets,以便在建置步驟期間下載與 Netlify 運行時相容的查詢引擎。 如果您不設定此選項,您部署的程式碼將會部署不正確的查詢引擎,並且無法運作。

根據 Node.js 的版本,您的 Prisma schema 應在 generator 區塊中包含 rhel-openssl-1.0.xrhel-openssl-3.0.x

binaryTargets = ["native", "rhel-openssl-1.0.x"]

在 Netlify 中儲存環境變數

我們建議將 .env 檔案保留在您的 .gitignore 中,以防止洩漏敏感的連線字串。 相反地,您可以使用 Netlify CLI 將 值直接匯入到 netlify 中

假設您有一個如下所示的檔案

.env
# Connect to DB
DATABASE_URL="postgresql://postgres:__PASSWORD__@__HOST__:__PORT__/__DB_NAME__"

您可以使用 env:import 命令將檔案上傳為環境變數

netlify env:import .env
顯示查詢結果
site: my-very-very-cool-site
---------------------------------------------------------------------------------.
Imported environment variables |
---------------------------------------------------------------------------------|
Key | Value |
--------------|------------------------------------------------------------------|
DATABASE_URL | postgresql://postgres:__PASSWORD__@__HOST__:__PORT__/__DB_NAME__ |
---------------------------------------------------------------------------------'
如果您未使用 .env 檔案

如果您使用不同的方法儲存資料庫連線字串和其他環境變數,則需要手動將環境變數上傳到 Netlify。 這些選項在 Netlify 的文件中討論,其中一種方法,即透過 UI 上傳,如下所述。

  1. 開啟網站的 Netlify 管理 UI。 您可以使用 Netlify CLI 如下所示
    netlify open --admin
  2. 點擊 網站設定Netlify 管理 UI
  3. 導航到左側邊欄中的 建置與部署,然後選擇 環境
  4. 點擊 編輯變數,然後建立一個金鑰為 DATABASE_URL 的變數,並將其值設定為您的資料庫連線字串。 Netlify 環境變數
  5. 點擊 儲存

現在開始新的 Netlify 建置和部署,以便新的建置可以使用新上傳的環境變數。

netlify deploy

您現在可以測試已部署的應用程式。

連線池

當您使用 Function-as-a-Service 提供者(如 Netlify)時,為了效能考量,將資料庫連線放入池中是有益的。 這是因為每次函數調用都可能導致與資料庫建立新的連線,這可能會很快耗盡開啟的連線。

您可以使用 Accelerate 進行連線池化,以減少 Prisma Client 套件大小並避免冷啟動。

有關無伺服器環境連線管理的更多資訊,請參閱我們的 連線管理指南