跳至主要内容

铁路

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

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

概述

本节提供使用名为 仅 Prisma Pulse 数据库 的铁路模板设置 Pulse 就绪的 PostgreSQL 数据库的逐步说明。

该模板包含两个 服务

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

说明

  1. 在铁路中部署 模板

  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,这将允许您在无需 sslmode=disable 参数的情况下使用 DATABASE_URL

    注意

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

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

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

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

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

使用模板设置:“Prisma Pulse 数据库和应用程序”

概述

本节提供使用名为 Prisma Pulse 数据库和应用程序 的铁路模板设置包含 Pulse 就绪的 PostgreSQL 数据库的 Pulse 入门项目的逐步说明。该模板包含三个 服务

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

说明

  1. 在铁路中部署 模板
  2. 您将被导航到一个页面,提示您配置 **restart-db-then-delete-me** 和 **pulse-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 项目中的**PostgreSQL**服务。
  2. 点击**数据**选项卡。
  3. 选择 **User** 表并点击**添加行**。
  4. 填写 **电子邮件** 和 **姓名**,然后点击**插入**。
  5. 返回 **pulse-starter** 服务的**部署日志**。
  6. 您应该能够看到 Prisma Pulse 生成的用户创建输出。
    just received an event: {
    action: "create",
    created: { id: 1, email: "test", name: "[email protected]" },
    id: 03/34334,
    modelName: "User"
    }

不使用模板进行设置

  1. 更改 PostgreSQL 数据库设置

    您可以使用 `pgAdmin` 、`dbeaver` 或任何其他方法在数据库上运行查询。

    • 将 `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. 您现在有一个在铁路中运行的与 Pulse 兼容的 PostgreSQL 数据库。您现在可以按照 入门 页面上的说明进行操作。