Railway
Railway 提供一個名為範本的實用功能,以方便快速設定專案。這些範本允許使用者將服務或一組服務打包成易於重複使用和共享的格式。我們有兩個 Prisma Pulse 的範本供您使用
- Prisma Pulse 僅限資料庫:提供一個全新的、預先設定好的 PostgreSQL 資料庫,您可以將其與 Prisma Pulse 一起使用。
- Prisma Pulse 資料庫 & 應用程式:提供一個預先設定好的 PostgreSQL 資料庫和一個 Prisma Pulse starter app。
使用範本設定:「Prisma Pulse 僅限資料庫」
概觀
本節提供逐步說明,教您如何使用名為 Prisma Pulse 僅限資料庫 的 Railway 範本設定適用於 Pulse 的 PostgreSQL 資料庫。
此範本包含兩個服務
- Postgres:一個 PostgreSQL 資料庫,在您完成設定說明後,即可與 Prisma Pulse 一起使用。
- restart-and-delete-me:此服務包含一個腳本,該腳本會執行一次,並設定 PostgreSQL 資料庫使其可與 Prisma Pulse 一起使用。腳本執行完成後,說明會告訴您刪除此服務,因為不再需要它。
說明
-
在 Railway 上部署範本。
-
部署完成後,點擊名為 restart-db-then-delete-me 的服務。
-
您將在 Deployments 標籤下看到部署列表。
-
點擊最新部署的 View Logs 按鈕。
-
點擊 Deploy Logs 標籤。如果服務執行正確,您應該會在日誌中看到一則訊息,內容為
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 服務中找到,導航至 Variables 標籤,然後點擊DATABASE_URL
環境變數值旁邊的複製圖示。 -
複製
DATABASE_URL
連接字串並儲存以供稍後使用。然後重新啟動您的 Railway 資料庫,以反映變更- 點擊代表您已部署資料庫的 Postgres 服務。
- 導航至 Deployments 標籤。
- 點擊最新部署上的三點選單,然後點擊 Restart 選項。
-
重新啟動資料庫後,點擊 restart-db-then-delete-me 服務,並導航至 Settings 標籤。
-
向下捲動至底部,然後點擊紅色的 Delete service 按鈕。
- 應該會出現一個提示訊息,詢問您是否要套用變更。點擊 Deploy + ⇧Enter 按鈕。
- 應該會彈出一個視窗,提示您輸入 apply destructive changes 以確認您要繼續刪除服務。
- 點擊 Commit 按鈕以確認並套用刪除。
-
您現在有一個在 Railway 上運行的 Pulse 相容 PostgreSQL 資料庫。您現在可以按照開始使用頁面上的說明進行操作。
使用範本設定:「Prisma Pulse 資料庫 & 應用程式」
概觀
本節提供逐步說明,教您如何使用名為 Prisma Pulse 資料庫 & 應用程式 的 Railway 範本設定 Pulse starter 專案以及適用於 Pulse 的 PostgreSQL 資料庫。此範本包含三個服務
- 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 服務,點擊 Configure 按鈕,然後點擊 Save Config 儲存設定。
- 點擊 Deploy 按鈕。
- 若要設定資料庫並使其適用於 Pulse,請完成前一節中概述的步驟,從步驟 2. 到步驟 8. 開始,然後按照以下說明進行操作。
- 前往並選擇您要啟用 Pulse 的專案。如果您還沒有專案,請透過 New project 按鈕建立一個新專案。
- 導航至您要啟用 Pulse 的專案環境。如果您剛建立一個新專案,則唯一可用的環境是 Production 環境。
- 在環境頁面上點擊 Enable Pulse。
- 將您之前取得的
DATABASE_URL
貼到 Database connection string 欄位中。然後,點擊 Enable Pulse 完成流程。
如果未為您的資料庫設定 TLS,請務必在資料庫連接字串後附加 ?sslmode=disable
。
- Pulse 現在已在您的專案環境中啟用。點擊 Generate API key 以取得您在 TypeScript starter 應用程式中使用 Pulse 所需的 API 金鑰。
- 儲存
PULSE_API_KEY
以供稍後使用,然後點擊 I've securely stored my connection string。 - 回到 Railway UI,點擊 pulse-starter 服務。
注意:您會注意到 pulse-starter 服務記錄了一則訊息,指出「Please ensure that PULSE_API_KEY environment variable is set」(請確保已設定 PULSE_API_KEY 環境變數)。這是因為未提供 Prisma Pulse API 金鑰。請不要擔心,這是預期的情況,對於後續步驟沒有問題。
- 點擊 Variables 標籤。
- 建立您的
PULSE_API_KEY
環境變數:點擊 New Variable 按鈕,建立PULSE_API_KEY
環境變數,然後貼上您在 Console 中取得的PULSE_API_KEY
值。然後點擊 Add 按鈕儲存變更。 - 在
PULSE_API_KEY
環境變數到位後,您需要重建 pulse-starter 服務,才能使環境變數生效 - 點擊 Deployments 標籤。
- 點擊最新部署上的三點選單。然後點擊 Redeploy。
- 當部署開始時,點擊 View Logs 按鈕。
- 然後點擊 Deploy Logs 標籤,以追蹤 Pulse starter 應用程式的部署。
部署完成後,您的 Pulse starter 應用程式應該正在運行,任何資料庫事件都將記錄在 pulse-starter 服務的 Deploy Logs 標籤下。
若要查看事件的運作情況,您需要變更 User
表格。您可以按照以下步驟從 Railway UI 執行此操作
- 點擊您 Railway 專案上的 Postgres 服務。
- 點擊 Data 標籤。
- 選擇 User 表格,然後點擊 Add Row。
- 填寫 email 和 name,然後點擊 Insert。
- 返回 pulse-starter 服務的 Deploy Logs。
- 您應該能夠看到 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 重新啟動資料庫
- 點擊您的資料庫。
- 導航至 Deployments 標籤。
- 點擊最新部署上的三點選單,然後點擊 Restart 選項。
-
設定 Railway 資料庫後,您必須使用 Railway 提供的連線字串,以允許公開存取您的 PostgreSQL 資料庫。
-
您現在有一個在 Railway 上運行的 Pulse 相容 PostgreSQL 資料庫。您現在可以按照開始使用頁面上的說明進行操作。