データベース
Kamui Platform では、マネージドな PostgreSQL データベースを簡単に作成・管理できます。
対応データベース
現在、PostgreSQL のみ対応しています。
データベースを作成する
- プロジェクト詳細画面で「新規データベース」をクリック
- 以下の情報を入力:
| 項目 | 説明 | 例 |
|---|---|---|
| データベース名 | 識別用の名前 | main-db |
| スペック | リソースサイズ | Nano / Small / Medium / Large |
- 「作成」をクリック
データベースの作成には数分かかる場合があります。ステータスが「running」になったら利用可能です。
アプリケーションから接続する
環境変数の自動注入
アプリケーション作成時にデータベースを選択すると、以下の環境変数が自動的に設定されます:
| 環境変数 | 説明 |
|---|---|
DATABASE_URL |
PostgreSQL 接続 URL(完全な接続文字列) |
DATABASE_HOST |
ホスト名 |
DATABASE_PORT |
ポート番号(通常 5432) |
DATABASE_NAME |
データベース名 |
DATABASE_USER |
ユーザー名 |
DATABASE_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())
接続情報を確認する
- データベース詳細画面を開く
- 「接続情報」セクションで以下を確認:
- 接続 URL
- ホスト
- ポート
- ユーザー名
- パスワード(表示ボタンをクリック)
セキュリティ注意: パスワードは安全に管理してください。
データベースのステータス
| ステータス | 説明 |
|---|---|
| creating | 作成中 |
| running | 正常稼働中 |
| stopped | 停止中 |
| error | エラー発生 |
データベースを編集する
- データベース詳細画面で「設定」タブをクリック
- 編集可能な項目:
- スペック(リソースサイズ)
- 「保存」をクリック
注意: スペック変更時はデータベースが再起動されます。
データベースを削除する
- データベース詳細画面で「設定」タブをクリック
- 「データベースを削除」をクリック
- 確認ダイアログでデータベース名を入力
- 「削除」をクリック
⚠️ 警告: データベースを削除すると、すべてのデータが失われます。この操作は取り消せません。削除前にバックアップを取ることを推奨します。
ベストプラクティス
接続プールを使用する
データベース接続は開いたままにせず、接続プールを使用してください。
// ❌ 接続をリクエストごとに作成
const client = new Client({ connectionString: process.env.DATABASE_URL });
await client.connect();
// ✅ 接続プールを使用
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
const result = await pool.query('SELECT * FROM users');
接続タイムアウトを設定する
長時間アイドル状態の接続はタイムアウトされる可能性があります。リトライロジックを実装してください。
本番環境のデータを開発環境に使用しない
セキュリティのため、本番データベースの接続情報を開発環境で使用しないでください。