跳到主要内容

Railway

Railway 提供一个有用的功能,称为 模板,以方便快速项目设置。这些模板允许用户将一个服务或一组服务打包成易于重用和共享的格式。我们有两个用于 Prisma Pulse 的模板,你可以使用

使用模板设置:“仅限 Prisma Pulse 数据库”

概述

本节提供使用名为 仅限 Prisma Pulse 数据库 的 Railway 模板设置可用于 Pulse 的 PostgreSQL 数据库的分步说明。

该模板包含两个 服务

  • Postgres:一个 PostgreSQL 数据库,经过设置说明后,你将能够将其与 Prisma Pulse 一起使用。
  • restart-and-delete-me:此服务包含一个 脚本,该脚本执行一次并配置 PostgreSQL 数据库,使其可与 Prisma Pulse 一起使用。脚本执行完毕后,说明将告诉你删除此服务,因为它不再需要了。

说明

  1. 在 Railway 上部署模板

  2. 部署完成后,单击名为 restart-db-then-delete-me 的服务。

  3. 你将在 部署 选项卡下看到一个部署列表。

  4. 单击最新部署的 查看日志 按钮。

  5. 单击 部署日志 选项卡。如果服务运行正常,你应在日志中看到一条消息,内容如下

    All done please restart the database and delete this service.
    Use the following DATABASE_URL to enable Prisma Pulse:

    postgresql://postgres:[email protected]:28606/railway?sslmode=disable
    警告

    启用 Pulse 时,需要使用 sslmode=disable 参数,因为 Pulse 默认使用 sslmode=require。我们建议为数据库设置 TLS,这将允许你使用 DATABASE_URL,而无需使用 sslmode=disable 参数。

    注意

    还可以通过单击 Postgres 服务并导航到 变量 选项卡,然后单击 DATABASE_URL 环境变量值旁边的复制图标来找到 DATABASE_URL 环境变量。

  6. 复制 DATABASE_URL 连接字符串并保存以备后用。然后重新启动 Railway 数据库以反映更改

    1. 单击表示已部署数据库的 Postgres 服务。
    2. 导航到 部署 选项卡。
    3. 单击最新部署上的三点菜单,然后单击 重新启动 选项。
  7. 重新启动数据库后,单击 restart-db-then-delete-me 服务并导航到 设置 选项卡。

  8. 向下滚动到底部,然后单击红色的 删除服务 按钮。

    1. 应该会有一个 toast 询问你是否要应用更改。单击 部署 + ⇧Enter 按钮。
    2. 应该会弹出一个窗口,提示你键入 apply destructive changes,以确认你要继续删除服务。
    3. 单击 提交 按钮以确认并应用删除。
  9. 你现在有一个在 Railway 上运行的与 Pulse 兼容的 PostgreSQL 数据库。你现在可以按照开始使用页面上的说明进行操作。

使用模板设置:“Prisma Pulse 数据库 & 应用”

概述

本节提供使用名为 Prisma Pulse 数据库 & 应用 的 Railway 模板设置带有可用于 Pulse 的 PostgreSQL 数据库的 Pulse 入门项目的分步说明。该模板包含三个 服务

  • Pulse-Starter:一个 Typescript 应用,具有使用 Prisma Pulse 的基本设置。你可以在 GitHub 上找到它的存储库。
  • Postgres:一个 PostgreSQL 数据库,经过设置说明后,你将能够将其与 Prisma Pulse 一起使用。
  • restart-and-delete-me:此服务包含一个 脚本,该脚本执行一次并配置 PostgreSQL 数据库,使其可与 Prisma Pulse 一起使用。脚本执行完毕后,说明将告诉你删除此服务,因为它不再需要了。

说明

  1. 在 Railway 上部署模板
  2. 你将导航到一个页面,提示你配置 restart-db-then-delete-mepulse-starter 服务
    1. 对于 restart-db-then-delete-me 服务,单击 配置 按钮,然后单击 保存配置 保存配置。
    2. 单击 部署 按钮。
  3. 要设置数据库并使其可用于 Pulse,请完成上一节中概述的步骤,从步骤 2.步骤 8.开始,然后按照以下说明进行操作。
  4. 转到并选择要在其中激活 Pulse 的项目。如果你还没有项目,请通过 新项目 按钮创建一个新项目。
  5. 导航到应该在其中激活 Pulse 的项目的环境。如果你刚刚创建了一个新项目,则唯一可用的环境是 生产 环境。
  6. 在环境页面上单击 启用 Pulse
  7. 将你之前获得的 DATABASE_URL 粘贴到 数据库连接字符串 字段中。然后,单击 启用 Pulse 完成该过程。
警告

如果你的数据库未设置 TLS,请确保将 ?sslmode=disable 附加到数据库连接字符串。

  1. Pulse 现在已在您项目的环境中启用。单击生成 API 密钥以获取您在 TypeScript 入门应用程序中使用 Pulse 所需的 API 密钥。
  2. 保存 PULSE_API_KEY 以备后用,然后单击我已安全存储我的连接字符串
  3. 返回 Railway UI,单击 pulse-starter 服务。

    注意:您会注意到 pulse-starter 服务记录了一条消息,指出“请确保设置了 PULSE_API_KEY 环境变量”。这是因为没有提供 Prisma Pulse API 密钥。不用担心,这是预期的情况,不会影响后续步骤。

  4. 单击变量选项卡。
  5. 创建您的 PULSE_API_KEY 环境变量:单击新建变量按钮,创建 PULSE_API_KEY 环境变量,然后粘贴您在控制台中获取的 PULSE_API_KEY 的值。然后单击添加按钮保存更改。
  6. 设置好 PULSE_API_KEY 环境变量后,您需要重建 pulse-starter 服务,以使环境变量生效。
  7. 单击部署选项卡。
  8. 单击最新部署上的三个点菜单。然后单击重新部署
  9. 当部署开始时,单击查看日志按钮。
  10. 然后单击部署日志选项卡,以跟踪 Pulse 入门应用程序的部署情况。

部署完成后,您的 Pulse 入门应用程序应该正在运行,并且任何数据库事件都将记录在 pulse-starter 服务的部署日志选项卡下。

要查看事件的实际效果,您需要更改 User 表。您可以按照以下步骤从 Railway UI 执行此操作。

  1. 单击您的 Railway 项目中的 Postgres 服务。
  2. 单击数据选项卡。
  3. 选择 User 表,然后单击添加行
  4. 填写一个 email 和一个 name,然后单击插入
  5. 返回到您的 pulse-starter 服务的部署日志
  6. 您应该能够看到 Prisma Pulse 输出的关于用户创建的信息。
    just received an event: {
    action: "create",
    created: { id: 1, email: "test", name: "[email protected]" },
    id: 03/34334
    }

不使用模板进行设置

  1. 更改 PostgreSQL 数据库设置

    您可以使用诸如 pgAdmindbeaver 或任何其他您可能在数据库上运行查询的方式来运行这些查询。

    • wal_level 设置为 logical
      ALTER SYSTEM SET wal_level = logical;
    • max_replication_slots 设置为 20
      ALTER SYSTEM SET max_replication_slots = 20;
    • wal_keep_size 设置为 2048
      ALTER SYSTEM SET wal_keep_size = 2048;
    • 重新加载 PostgreSQL 配置
      SELECT pg_reload_conf();
  2. 您必须重新启动数据库才能使更改生效。要使用 Railway UI 重新启动数据库

    1. 单击您的数据库。
    2. 导航到 部署 选项卡。
    3. 单击最新部署上的三点菜单,然后单击 重新启动 选项。
  3. 设置好 Railway 数据库后,您必须使用 Railway 提供的连接字符串,该连接字符串允许公共访问您的 PostgreSQL 数据库。

  4. 你现在有一个在 Railway 上运行的与 Pulse 兼容的 PostgreSQL 数据库。你现在可以按照开始使用页面上的说明进行操作。