跳到主要内容

部署到 Netlify

本指南涵盖了将使用 Prisma ORM 的应用程序部署到 Netlify 所需的步骤。

Netlify 是一个用于持续部署、静态网站和无服务器函数的云平台。Netlify 与 GitHub 无缝集成,以便在提交时自动部署。按照以下步骤操作时,您将使用这种方法来创建将应用程序从 GitHub 存储库部署的 CI/CD 管道。

先决条件

在开始按照本指南操作之前,您需要设置您的应用程序以开始部署到 Netlify。我们推荐使用 "Netlify 入门" 指南快速了解概览,以及 "部署函数" 深入了解您的部署选项。

schema.prisma 中的二进制目标

由于您的代码将部署到 Netlify 的环境,这与您的开发环境并不一定相同,因此您需要设置 binaryTargets,以便在构建步骤期间下载与 Netlify 运行时兼容的查询引擎。如果您没有设置此选项,则您的已部署代码将使用不正确的查询引擎进行部署,并且无法正常工作。

根据 Node.js 版本,您的 Prisma 模式应在 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。这些选项在 Netlfiy 的文档中进行了讨论,其中一种方法(通过 UI 上传)将在下面介绍。

  1. 打开该网站的 Netlify 管理员 UI。您可以使用 Netlify CLI,方法如下
    netlify open --admin
  2. 点击**站点设置**:Netlify admin UI
  3. 在左侧的侧边栏中导航到**构建和部署**,然后选择**环境**。
  4. 点击**编辑变量**,并创建一个键为 DATABASE_URL 的变量,并将它的值设置为您的数据库连接字符串。 Netlify environment variables
  5. 点击**保存**。

现在启动一个新的 Netlify 构建和部署,以便新构建可以使用新上传的环境变量。

netlify deploy

您现在可以测试部署的应用程序。

连接池

当您使用诸如 Netlify 之类的函数即服务提供商时,出于性能原因,连接数据库连接池是有益的。这是因为每次函数调用都可能导致与您的数据库建立新的连接,这会导致可用连接很快耗尽。

您可以使用 Accelerate 进行连接池、缩减 Prisma 客户端捆绑包大小,以及避免冷启动。

有关无服务器环境的连接管理的更多信息,请参阅我们的 连接管理指南