【Cloudflare D1】テーブルをdirzzle-kitを使って作成するか、wranglerを使って作成するか
まえがき
記事の内容
通常、Cloudflare D1でテーブルを作成するには、wrangler
を使います。
そして、drizzle-orm
を使ってデータベースを管理すると、dirzzle-kit
を使ってテーブルを作成できます。
両方の方法を備忘録として残しておきます。
備忘録なので、まとまっていないかもしれませんが、誰かの役に立てば幸いです。
データベース名
データベース名はtodo-db
とします。
wrangler
を使って、テーブルを作成
drizzle.config.ts
import { defineConfig } from "drizzle-kit";
export default defineConfig({
out: "./drizzle/migrations",
schema: "./drizzle/schema.ts",
dialect: "sqlite",
});
wrangler.toml
wrangler.toml
にmigrations_dir
を追加します。
これは、drizzle.config.ts
のout
プロパティで指定したパスを、そのまま指定します。
[[d1_databases]]
migrations_dir = "drizzle/migrations"
次のコマンドを実行して、テーブルを作成します。
npx wrangler d1 migrations apply todo-db
dirzzle-kit
を使って、テーブルを作成
drizzle.config.ts
ドキュメントのdbCredentials
から、下にスクロールしてD1Credentials
の項目を参照します。
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.ts
にdriver
プロパティとdbCredentials
プロパティが必要になります。
まずは、driver
プロパティにd1-http
を指定します。
次に、dbCredentials
には、以下の3つのプロパティが必要です。
accountId
databaseId
token
accountId
プロパティには、Cloudflare Account IDを指定します。
- Cloudflareのダッシュボードから
- Workers & Pagesを開いて
- 右上のAccount IDをコピペ
databaseId
プロパティには、Cloudflare D1 Database IDを指定します。
- Cloudflareのダッシュボードから
- Workers & Pagesを開いて
- D1を開いて
- 目的のデータベースのDatabase IDをコピペ
token
プロパティには、Cloudflare API Tokensを指定します。
- Cloudflareのダッシュボードから
- Workers & Pagesを開いて
- 右上のAccount IDの下のAPIトークンの管理を開いて
- APIトークンを作成
- カスタム トークンを作成
- トークン名を作成
- アクセス許可の項目の選択でD1を選択
- 編集を選択
- アカウント リソースのすべてのアカウントからあなたのアカウントを選択
- すべて入力したら、概要に進むを押して
- トークンを作成を押す
- 作成されたAPIトークンをコピペ
次のコマンドを実行して、テーブルを作成します。
npx drizzle-kit migrate
あとがき
youtubeチャンネル「typescriptでフルスタックエンジニアになる」を運営しています。
Cloudflare WorkersにAPIを作成したり、Cloudflare Pagesにデプロイする前提でフォームの作り方や認証機能の使い方を動画にしています。
ぜひ、ご覧ください。
Discussion