跳到主要内容

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:password@roundhouse.proxy.rlwy.net:28606/railway?sslmode=disable
    警告

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

    注意

    DATABASE_URL 环境变量也可以通过单击 Postgres 服务并导航到变量选项卡找到,然后单击 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 的项目的环境。如果您刚刚创建了一个新项目,则唯一可用的环境是 Production 环境。
  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: "test@test.io" },
    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 数据库。您现在可以按照开始使用页面上的说明进行操作。