KamuiDash KamuiDash ドキュメント
EN JA

データベース

KamuiDash では、マネージドな PostgreSQL データベースを簡単に作成・管理できます。

対応データベース

現在、PostgreSQL のみ対応しています。

データベースを作成する

  1. プロジェクト詳細画面で「新規データベース」をクリック
  2. 以下の情報を入力:
項目 説明
データベース名 識別用の名前 main-db
スペック リソースサイズ Nano / Small / Medium / Large
  1. 「作成」をクリック

データベースの作成には数分かかる場合があります。ステータスが「running」になったら利用可能です。

アプリケーションから接続する

環境変数の自動注入

アプリケーション作成時にデータベースを選択すると、以下の環境変数が自動的に設定されます:

環境変数 説明
DB_HOST ホスト名
DB_PORT ポート番号(通常 5432)
DB_NAME データベース名
DB_USER ユーザー名
DB_PASSWORD パスワード
DATABASE_URL 接続文字列: postgresql://user:password@host:port/dbname

DATABASE_URL を使うと1つの接続文字列で接続できます。ライブラリが個別指定を必要とする場合は 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. 「接続情報」セクションで以下を確認:
  3. 接続 URL
  4. ホスト
  5. ポート
  6. ユーザー名
  7. パスワード(表示ボタンをクリック)

セキュリティ注意: パスワードは安全に管理してください。

データベースのステータス

ステータス 説明
success 正常稼働中
stop 停止中
error エラー発生

データベースを編集する

  1. データベース詳細画面で「設定」タブをクリック
  2. 編集可能な項目:
  3. スペック(リソースサイズ)
  4. 「保存」をクリック

注意: スペック変更時はデータベースが再起動されます。

データベースを削除する

  1. データベース詳細画面で「設定」タブをクリック
  2. 「データベースを削除」をクリック
  3. 確認ダイアログでデータベース名を入力
  4. 「削除」をクリック

警告: データベースを削除すると、すべてのデータが失われます。この操作は取り消せません。削除前にバックアップを取ることを推奨します。

ベストプラクティス

接続プールを使用する

データベース接続は開いたままにせず、接続プールを使用してください。

// Bad: 接続をリクエストごとに作成
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();

// Good: 接続プールを使用
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');

次のステップ