Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Xata

最終更新 Markdown で表示Agent セットアップ

Xata は、開発者がデータベースを運用・スケールしやすくする PostgreSQL データベースプラットフォームです。コピーオンライトのデータベースブランチ、無停止のスキーマ変更、データ匿名化、AI によるパフォーマンス監視、BYOC などの機能があります。

Xata のドキュメント も参照してください。

Hyperdrive で Xata に接続するには、次の手順に従います。

1. Hyperdrive からのアクセスを許可する

Xata が提供する接続文字列を使って、既存の Xata PostgreSQL データベースに Hyperdrive を接続できます。

Xata ダッシュボード

Xata ダッシュボードから接続文字列を取得するには、次の手順を行います。

  1. Xata ダッシュボード を開きます。
  2. 接続するデータベースを選択します。
  3. PostgreSQL の接続文字列をコピーします。

詳細は Xata のドキュメント を参照してください。

2. データベース設定を作成する

Hyperdrive を設定するには、次の情報が必要です。

  • データベースの IP アドレス(またはホスト名)とポート。
  • 前の手順で設定したデータベースのユーザー名(例: hyperdrive-demo)。
  • そのユーザー名に対応するパスワード。
  • Hyperdrive が接続するデータベース名。例: postgres

Hyperdrive は、これらのパラメーターを組み合わせた、データベースドライバーで一般的な接続文字列形式を受け付けます。

postgres://USERNAME:PASSWORD@HOSTNAME_OR_IP_ADDRESS:PORT/database_name

ほとんどのデータベースプロバイダーは、Hyperdrive にそのままコピー&ペーストできる接続文字列を提供します。

Cloudflare ダッシュボードで Hyperdrive 設定を作成する手順は次のとおりです。

  1. Cloudflare ダッシュボードで Hyperdrive ページを開きます。

    Hyperdrive を開く ↗
  2. Create Configuration を選択します。

  3. 接続文字列を含め、フォームに入力します。

  4. Create を選択します。

Wrangler CLI で Hyperdrive 設定を作成する手順は次のとおりです。

  1. ターミナルを開き、次のコマンドを実行します。<NAME_OF_HYPERDRIVE_CONFIG> を Hyperdrive 設定の名前に置き換え、データベースホストから提供された接続文字列を貼り付けるか、userpasswordHOSTNAME_OR_IP_ADDRESSportdatabase_name のプレースホルダーをデータベース固有の値に置き換えます。

    npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name"
  2. このコマンドは、Wrangler 設定ファイル 向けのバインディングを出力します。

    {
    	"$schema": "./node_modules/wrangler/config-schema.json",
    	"name": "hyperdrive-example",
    	"main": "src/index.ts",
    	// Set this to today's date
    	"compatibility_date": "2026-09-20",
    	"compatibility_flags": [
    		"nodejs_compat"
    	],
    	// Pasted from the output of `wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string=[...]` above.
    	"hyperdrive": [
    		{
    			"binding": "HYPERDRIVE",
    			"id": "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"
    		}
    	]
    }
    "$schema" = "./node_modules/wrangler/config-schema.json"
    name = "hyperdrive-example"
    main = "src/index.ts"
    # Set this to today's date
    compatibility_date = "2026-09-20"
    compatibility_flags = [ "nodejs_compat" ]
    
    [[hyperdrive]]
    binding = "HYPERDRIVE"
    id = "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"

3. Worker から Hyperdrive を使う

node-postgres ドライバーをインストールします。

npm i pg@>8.16.3

TypeScript を使う場合は、型定義パッケージもインストールします。

npm i -D @types/pg

必要な Node.js 互換性フラグと Hyperdrive バインディングを、wrangler.jsonc ファイルに追加します。

{
	// required for database drivers to function
	"compatibility_flags": [
		"nodejs_compat"
	],
	// Set this to today's date
	"compatibility_date": "2026-09-20",
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "<your-hyperdrive-id-here>"
		}
	]
}
compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-09-20"

[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"

新しい Client インスタンスを作成し、Hyperdrive の connectionString を渡します。

// filepath: src/index.ts
import { Client } from "pg";

export default {
	async fetch(
		request: Request,
		env: Env,
		ctx: ExecutionContext,
	): Promise<Response> {
		// Create a new client instance for each request. Hyperdrive maintains the
		// underlying database connection pool, so creating a new client is fast.
		const client = new Client({
			connectionString: env.HYPERDRIVE.connectionString,
		});

		try {
			// Connect to the database
			await client.connect();

			// Perform a simple query
			const result = await client.query("SELECT * FROM pg_tables");

			return Response.json({
				success: true,
				result: result.rows,
			});
		} catch (error: any) {
			console.error("Database error:", error.message);

			return new Response("Internal error occurred", { status: 500 });
		}
	},
};

次のステップ

役に立ちましたか?