Skip to Content
リファレンスストレージCloudflare D1 ストレージ

Cloudflare D1 ストレージ

Cloudflare D1ストレージの実装は、Cloudflare D1を使用したサーバーレスSQLデータベースソリューションを提供し、リレーショナル操作とトランザクションの一貫性をサポートします。

インストール

npm install @mastra/cloudflare-d1@latest

使用方法

import { D1Store } from "@mastra/cloudflare-d1"; // --- Example 1: Using Workers Binding --- const storageWorkers = new D1Store({ binding: D1Database, // D1Database binding provided by the Workers runtime tablePrefix: 'dev_', // Optional: isolate tables per environment }); // --- Example 2: Using REST API --- const storageRest = new D1Store({ accountId: process.env.CLOUDFLARE_ACCOUNT_ID!, // Cloudflare Account ID databaseId: process.env.CLOUDFLARE_D1_DATABASE_ID!, // D1 Database ID apiToken: process.env.CLOUDFLARE_API_TOKEN!, // Cloudflare API Token tablePrefix: 'dev_', // Optional: isolate tables per environment });

パラメータ

binding?:

D1Database
Cloudflare D1 Workersバインディング(Workersランタイム用)

accountId?:

string
CloudflareアカウントID(REST API用)

databaseId?:

string
Cloudflare D1データベースID(REST API用)

apiToken?:

string
Cloudflare APIトークン(REST API用)

tablePrefix?:

string
すべてのテーブル名のオプションのプレフィックス(環境分離に役立ちます)

追加情報

スキーマ管理

ストレージの実装はスキーマの作成と更新を自動的に処理します。以下のテーブルが作成されます:

  • threads: 会話スレッドを保存します
  • messages: 個々のメッセージを保存します
  • metadata: スレッドとメッセージの追加メタデータを保存します

トランザクションと一貫性

Cloudflare D1は単一行操作のトランザクション保証を提供します。これにより、複数の操作を単一の全か無かの作業単位として実行できます。

テーブル作成とマイグレーション

テーブルはストレージが初期化されるときに自動的に作成されます(tablePrefixオプションを使用して環境ごとに分離できます)が、列の追加、データ型の変更、インデックスの修正などの高度なスキーマ変更には、データ損失を避けるために手動のマイグレーションと慎重な計画が必要です。