KamuiDash KamuiDash 文件
EN JA ZH

資料庫

KamuiDash 讓你能輕鬆建立與管理 PostgreSQL 資料庫。

支援的資料庫

目前僅支援 PostgreSQL

建立資料庫

  1. 在專案詳細畫面點選「New Database」
  2. 輸入以下資訊:
欄位 說明 範例
資料庫名稱 識別用的名稱 main-db
規格 資源大小 Nano / Small / Medium / Large
  1. 點選「Create」

建立資料庫可能需要幾分鐘。狀態顯示為「running」後即可使用。

從應用程式連接

自動注入環境變數

建立應用程式時若選擇了資料庫,以下環境變數會自動設定:

環境變數 說明
DB_HOST 主機名稱
DB_PORT 連接埠(通常為 5432)
DB_NAME 資料庫名稱
DB_USER 使用者名稱
DB_PASSWORD 密碼
DATABASE_URL 完整的連線字串:postgresql://user:password@host:port/dbname

若要使用單一連線字串,請用 DATABASE_URL。若你的函式庫需要分開指定,也可以使用個別的變數(DB_HOSTDB_PORTDB_NAMEDB_USERDB_PASSWORD)。

連線範例

Node.js(pg 函式庫)

const { Pool } = require('pg');

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
});

const result = await pool.query('SELECT NOW()');
console.log(result.rows[0]);

Go

import (
    "database/sql"
    "os"
    _ "github.com/lib/pq"
)

db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
if err != nil {
    log.Fatal(err)
}

Python

import os
import psycopg2

conn = psycopg2.connect(os.environ['DATABASE_URL'])
cursor = conn.cursor()
cursor.execute('SELECT NOW()')
print(cursor.fetchone())

檢視連線資訊

  1. 開啟資料庫詳細畫面
  2. 在「Connection Info」區塊確認:
  3. 連線 URL
  4. 主機
  5. 連接埠
  6. 使用者名稱
  7. 密碼(點選顯示按鈕)

安全提醒:請妥善保管你的密碼。

資料庫狀態

狀態 說明
success 正常運作中
stop 已停止
error 發生錯誤

編輯資料庫

  1. 在資料庫詳細畫面點選「Settings」分頁
  2. 可編輯的欄位:
  3. 規格(資源大小)
  4. 點選「Save」

注意:變更規格會讓資料庫重新啟動。

刪除資料庫

  1. 在資料庫詳細畫面點選「Settings」分頁
  2. 點選「Delete Database」
  3. 在確認對話框中輸入資料庫名稱
  4. 點選「Delete」

警告:刪除資料庫會永久刪除所有資料。此操作無法復原。建議在刪除前先備份。

最佳實務

使用連線池

不要讓資料庫連線一直開著,請改用連線池。

// 不好的做法:每個請求都建立一條連線
const client = new Client({
  host: process.env.DB_HOST,
  port: parseInt(process.env.DB_PORT),
  database: process.env.DB_NAME,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
});
await client.connect();

// 好的做法:使用連線池
const pool = new Pool({
  host: process.env.DB_HOST,
  port: parseInt(process.env.DB_PORT),
  database: process.env.DB_NAME,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
});
const result = await pool.query('SELECT * FROM users');

下一步