跳至主要內容

連線至 Postgres

本教學課程涵蓋如何從部署在 Deno 部署上的應用程式連線至 Postgres 資料庫。

您可以在 這裡 找到更全面的教學課程,在 Postgres 上建立範例應用程式。

設定 Postgres

本教學將完全專注於連線到未加密的 Postgres。如果您想使用自訂 CA 憑證進行加密,請使用此處的文件。

首先,我們需要建立一個新的 Postgres 執行個體供我們連線。在本教學中,我們將使用Supabase,因為他們提供免費的受管理 Postgres 執行個體。如果您想在其他地方主機您的資料庫,您也可以這麼做。

  1. 前往https://app.supabase.io/並按一下建立新專案
  2. 為您的資料庫選擇名稱、密碼和地區。請務必儲存密碼,因為您稍後會需要它。
  3. 按一下建立新專案。建立專案可能需要一些時間,請耐心等候。

從 Postgres 收集憑證

設定好 Postgres 資料庫後,從您的 Postgres 執行個體收集您的連線資訊。

Supabase

對於上述的 Supabase 執行個體,若要取得您的連線資訊

  1. 導覽至左側的資料庫標籤。
  2. 前往專案設定 >> 資料庫並從連線字串 >> URI欄位複製連線字串。這是您將用來連線至資料庫的連線字串。將您稍早儲存的密碼插入此字串,然後將字串儲存在某處 - 您稍後會需要它。

psql

如果您使用 psql,通常可以透過執行下列指令來尋找連線資訊

test=# \conninfo

您的 Postgres 連線字串將採用以下格式

postgres://user:password@127.0.0.1:5432/deploy?sslmode=disable

在 Deno Deploy 中建立專案

接下來,讓我們在 Deno Deploy 中建立一個專案,並設定必要的環境變數

  1. 前往 https://dash.deno.com/new(如果您尚未登入,請使用 GitHub 登入),然後在從命令列部署底下按一下+ 空專案
  2. 現在按一下專案頁面上的設定按鈕。
  3. 導覽至環境變數區段,然後新增下列機密。
  • DATABASE_URL - 值應該是您在上一步驟中擷取的連線字串。

postgres_env_variable

撰寫連線至 Postgres 的程式碼

若要讀取/寫入 Postgres,請匯入 Postgres 模組,從環境變數中讀取連線字串,並建立連線池。

import { Pool } from "https://deno.land/x/postgres@v0.17.0/mod.ts";

// Get the connection string from the environment variable "DATABASE_URL"
const databaseUrl = Deno.env.get("DATABASE_URL")!;

// Create a database pool with three connections that are lazily established
const pool = new Pool(databaseUrl, 3, true);

// Connect to the database
const connection = await pool.connect();

try {
// Create the table
await connection.queryObject`
CREATE TABLE IF NOT EXISTS todos (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL
)
`;
} finally {
// Release the connection back into the pool
connection.release();
}

將應用程式部署到 Deno Deploy

完成應用程式的撰寫後,您可以在 Deno Deploy 上部署它。

為此,請返回您的專案頁面,網址為 https://dash.deno.com/projects/<project-name>

您應該會看到幾個部署選項

除非您想要新增建置步驟,否則我們建議您選擇 Github 整合。

有關在 Deno Deploy 上部署的不同方式和不同組態選項的更多詳細資訊,請在此處閱讀。