【Cloudflare D1】テーブルをdirzzle-kitを使って作成するか、wranglerを使って作成するか

2024/07/24に公開

まえがき

記事の内容

通常、Cloudflare D1でテーブルを作成するには、wranglerを使います。
そして、drizzle-ormを使ってデータベースを管理すると、dirzzle-kitを使ってテーブルを作成できます。
両方の方法を備忘録として残しておきます。
備忘録なので、まとまっていないかもしれませんが、誰かの役に立てば幸いです。

データベース名

データベース名はtodo-dbとします。

wranglerを使って、テーブルを作成

https://orm.drizzle.team/kit-docs/config-reference

drizzle.config.ts

drizzle.config.ts
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  out: "./drizzle/migrations",
  schema: "./drizzle/schema.ts",
  dialect: "sqlite",
});

wrangler.toml

wrangler.tomlmigrations_dirを追加します。
これは、drizzle.config.tsoutプロパティで指定したパスを、そのまま指定します。

wrangler.toml
[[d1_databases]]
migrations_dir = "drizzle/migrations"

次のコマンドを実行して、テーブルを作成します。

npx wrangler d1 migrations apply todo-db

dirzzle-kitを使って、テーブルを作成

drizzle.config.ts

ドキュメントのdbCredentialsから、下にスクロールしてD1Credentialsの項目を参照します。

https://orm.drizzle.team/kit-docs/config-reference#dbcredentials

drizzle.config.ts
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  out: "./drizzle/migrations",
  schema: "./drizzle/schema.ts",
  dialect: "sqlite",
  driver: "d1-http",
  dbCredentials: {
    accountId: "<Cloudflare Account ID>",
    databaseId: "<unique-ID-for-your-database>",
    token: "<Cloudflare API Tokens>",
  },
});

drizzle.config.tsdriverプロパティとdbCredentialsプロパティが必要になります。
まずは、driverプロパティにd1-httpを指定します。
次に、dbCredentialsには、以下の3つのプロパティが必要です。

  • accountId
  • databaseId
  • token

accountIdプロパティには、Cloudflare Account IDを指定します。

  1. Cloudflareのダッシュボードから
  2. Workers & Pagesを開いて
  3. 右上のAccount IDをコピペ

databaseIdプロパティには、Cloudflare D1 Database IDを指定します。

  1. Cloudflareのダッシュボードから
  2. Workers & Pagesを開いて
  3. D1を開いて
  4. 目的のデータベースのDatabase IDをコピペ

tokenプロパティには、Cloudflare API Tokensを指定します。

  1. Cloudflareのダッシュボードから
  2. Workers & Pagesを開いて
  3. 右上のAccount IDの下のAPIトークンの管理を開いて
  4. APIトークンを作成
  5. カスタム トークンを作成
    1. トークン名を作成
    2. アクセス許可の項目の選択でD1を選択
    3. 編集を選択
    4. アカウント リソースのすべてのアカウントからあなたのアカウントを選択
    5. すべて入力したら、概要に進むを押して
    6. トークンを作成を押す
    7. 作成されたAPIトークンをコピペ

次のコマンドを実行して、テーブルを作成します。

npx drizzle-kit migrate

あとがき

youtubeチャンネル「typescriptでフルスタックエンジニアになる」を運営しています。

https://www.youtube.com/channel/UCqmIGhDsE5y-fmjtp8SnblQ/

Cloudflare WorkersにAPIを作成したり、Cloudflare Pagesにデプロイする前提でフォームの作り方や認証機能の使い方を動画にしています。
ぜひ、ご覧ください。

GitHubで編集を提案

Discussion