Railway
Railway 提供了一个名为模板的实用功能,以方便快速项目设置。这些模板允许用户将服务或一组服务打包成易于重用和共享的格式。我们提供了两个 Prisma Pulse 模板供您使用
- Prisma Pulse 仅数据库模板:提供一个全新的、预配置的 PostgreSQL 数据库,您可以将其与 Prisma Pulse 一起使用。
- Prisma Pulse 数据库 & 应用程序模板:提供一个预配置的 PostgreSQL 数据库和一个 Prisma Pulse 启动器应用程序。
使用模板设置:“Prisma Pulse 仅数据库模板”
概述
本节提供了使用名为 Prisma Pulse 仅数据库模板 的 Railway 模板设置可用于 Pulse 的 PostgreSQL 数据库的分步说明。
该模板包含两个服务
- Postgres:一个 PostgreSQL 数据库,您可以在完成设置说明后将其与 Prisma Pulse 一起使用。
- restart-and-delete-me:此服务包含一个脚本,该脚本执行一次并配置 PostgreSQL 数据库,使其可与 Prisma Pulse 一起使用。脚本执行完毕后,说明将告知您删除此服务,因为它不再需要。
说明
-
在 Railway 上部署模板。
-
部署完成后,单击名为 restart-db-then-delete-me 的服务。
-
您将在部署选项卡下看到部署列表。
-
单击最新部署的查看日志按钮。
-
单击部署日志选项卡。如果服务运行正确,您应该在日志中看到一条消息,内容为
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
环境变量值旁边的复制图标。 -
复制
DATABASE_URL
连接字符串并保存以备后用。然后重启您的 Railway 数据库以使更改生效- 单击代表您已部署数据库的 Postgres 服务。
- 导航到部署选项卡。
- 单击最新部署上的三点菜单,然后单击重启选项。
-
重启数据库后,单击 restart-db-then-delete-me 服务并导航到设置选项卡。
-
向下滚动到底部,然后单击红色删除服务按钮。
- 应该会弹出一个 toast 消息询问您是否要应用更改。单击部署 + ⇧Enter 按钮。
- 应该会弹出一个提示,要求您键入 apply destructive changes 以确认您要继续删除服务。
- 单击提交按钮以确认并应用删除。
-
您现在在 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 一起使用。脚本执行完毕后,说明将告知您删除此服务,因为它不再需要。
说明
- 在 Railway 上部署模板。
- 您将被导航到一个页面,提示您配置 restart-db-then-delete-me 和 pulse-starter 服务
- 对于 restart-db-then-delete-me 服务,单击配置按钮,然后单击保存配置保存配置。
- 单击部署按钮。
- 要设置数据库并使其为 Pulse 就绪,请完成上一节中概述的步骤,从步骤 2. 到步骤 8.,然后按照以下说明操作。
- 转到并选择您要在其中激活 Pulse 的项目。如果您还没有项目,请通过新项目按钮创建一个新项目。
- 导航到应激活 Pulse 的项目的环境。如果您刚刚创建了一个新项目,则唯一可用的环境是 Production 环境。
- 在环境页面上单击启用 Pulse。
- 将您之前获取的
DATABASE_URL
粘贴到数据库连接字符串字段中。然后,单击启用 Pulse 完成该过程。
如果未为您的数据库设置 TLS,请确保在数据库连接字符串后附加 ?sslmode=disable
。
- Pulse 现在已在您的项目环境中启用。单击生成 API 密钥以获取您在 TypeScript 启动器应用程序中使用 Pulse 所需的 API 密钥。
- 保存
PULSE_API_KEY
以备后用,然后单击我已安全地存储了我的连接字符串。 - 返回 Railway UI,单击 pulse-starter 服务。
注意:您会注意到 pulse-starter 服务记录了一条消息,指出“请确保已设置 PULSE_API_KEY 环境变量”。这是因为未提供 Prisma Pulse API 密钥。请勿担心,这是预期的,并且对于后续步骤没有问题。
- 单击变量选项卡。
- 创建您的
PULSE_API_KEY
环境变量:单击新变量按钮,创建PULSE_API_KEY
环境变量,然后粘贴您在控制台中获得的PULSE_API_KEY
的值。然后单击添加按钮保存更改。 - 在
PULSE_API_KEY
环境变量就位后,您需要重建 pulse-starter 服务,以使环境变量生效 - 单击部署选项卡。
- 单击最新部署上的三点菜单。然后单击重新部署。
- 部署开始后,单击查看日志按钮。
- 然后单击部署日志选项卡以跟踪 Pulse 启动器应用程序的部署。
部署完成后,您的 Pulse 启动器应用程序应该正在运行,并且任何数据库事件都将记录在 pulse-starter 服务的部署日志选项卡下。
要查看事件的实际效果,您需要更改 User
表。您可以按照以下步骤从 Railway UI 执行此操作
- 单击 Railway 项目上的 Postgres 服务。
- 单击数据选项卡。
- 选择 User 表,然后单击添加行。
- 填写一个 email 和一个 name,然后单击插入。
- 返回到 pulse-starter 服务的部署日志。
- 您应该能够看到 Prisma Pulse 为用户创建的输出
just received an event: {
action: "create",
created: { id: 1, email: "test", name: "test@test.io" },
id: 03/34334
}
不使用模板进行设置
-
更改 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();
- 将
-
您必须重启数据库才能使更改生效。要使用 Railway UI 重启数据库
- 单击您的数据库。
- 导航到部署选项卡。
- 单击最新部署上的三点菜单,然后单击重启选项。
-
设置 Railway 数据库后,您必须使用 Railway 提供的连接字符串,该连接字符串允许公共访问您的 PostgreSQL 数据库。
-
您现在在 Railway 上运行了一个与 Pulse 兼容的 PostgreSQL 数据库。您现在可以按照开始使用页面上的说明进行操作。