部署到 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.x
或 rhel-openssl-3.0.x
- Node.js 16 和 18
- Node.js 20+
binaryTargets = ["native", "rhel-openssl-1.0.x"]
binaryTargets = ["native", "rhel-openssl-3.0.x"]
在 Netlify 中存储环境变量
我们建议将 .env
文件保留在 .gitignore
中,以防止敏感连接字符串泄露。相反,您可以使用 Netlify CLI 直接将值导入到 Netlify 中。
假设您有以下文件
# 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 上传)在下面进行了描述。
- 打开站点的 Netlify 管理 UI。您可以使用 Netlify CLI 如下操作:
netlify open --admin
- 点击 站点设置:
- 导航到左侧边栏中的 构建与部署,然后选择 环境。
- 点击 编辑变量 并创建一个名为
DATABASE_URL
的变量,将其值设置为您的数据库连接字符串。 - 点击 保存。
现在开始一个新的 Netlify 构建和部署,以便新构建可以使用新上传的环境变量。
netlify deploy
您现在可以测试部署的应用程序。
连接池
当您使用函数即服务(FaaS)提供商(如 Netlify)时,出于性能原因,使用数据库连接池是有益的。这是因为每次函数调用都可能导致与数据库建立新连接,这会很快耗尽可用连接。
您可以使用 Accelerate 进行连接池,或者使用内置连接池的 Prisma Postgres,以减少 Prisma Client 包大小并避免冷启动。
有关无服务器环境下的连接管理的更多信息,请参阅我们的 连接管理指南。