跳转到主要内容

部署到 Fly.io

本指南解释了如何将使用 Prisma ORM 和 PostgreSQL 的 Node.js 服务器部署到 Fly.io。

Prisma Render 部署示例 包含一个带有 REST 终点和简单前端的 Express.js 应用程序。此应用程序使用 Prisma Client 从其数据库中获取、创建和删除记录。本指南将向您展示如何在 Fly.io 上部署相同的应用程序,而无需修改。

关于 Fly.io

fly.io 是一个云应用程序平台,使开发人员可以轻松部署和扩展在靠近用户的机器上按需启动的完整堆栈应用程序。对于此示例,了解以下内容很有帮助

  • Fly.io 允许您在全球 35 个区域 中部署长时间运行的“有服务器”完整堆栈应用程序。默认情况下,应用程序配置为在不使用时 自动停止,并在需要时随着请求的进入自动启动。
  • Fly.io 原生支持各种 语言和框架,包括 Node.js 和 Bun。在本指南中,我们将使用 Node.js 运行时。
  • Fly.io 可以 直接从 GitHub 启动应用程序。从 CLI 运行 fly launch 将自动配置 GitHub 上托管的应用程序以在推送时部署。

先决条件

获取示例代码

示例代码 下载到本地计算机。

curl https://codeload.github.com/prisma/prisma-examples/tar.gz/latest | tar -xz --strip=2 prisma-examples-latest/deployment-platforms/render
cd render

了解示例

在部署应用程序之前,让我们看一下示例代码。

Web 应用程序

Express 应用程序的逻辑在两个文件中

  • src/index.js:API。端点使用 Prisma Client 从数据库中获取、创建和删除数据。
  • public/index.html:Web 前端。前端调用一些 API 端点。

Prisma schema 和迁移

此应用程序的 Prisma 组件在三个文件中

  • prisma/schema.prisma:此应用程序的数据模型。此示例定义了两个模型,UserPost。此文件的格式遵循 Prisma schema
  • prisma/migrations/<migration name>/migration.sql:在 PostgreSQL 数据库中构建此 schema 的 SQL 命令。您可以通过运行 prisma migrate dev 自动生成像这样的迁移文件。
  • prisma/seed.js:定义了一些测试用户和 postsPrisma,用于 使用启动数据播种数据库

部署示例

1. 运行 fly launch 并接受默认值

就是这样。您的 Web 服务将在部署完成后立即在其 fly.dev URL 上上线。 可选地 扩展 机器的大小、数量和位置,如需。fly console 可用于 ssh 进入新的或现有的机器。

更多信息可以在 fly.io 文档 中找到。