Open2

D1(ローカル)をDrizzle Studioで開く方法

いしはるいしはる

drizzle.config.tsとは別にdrizzle.config.local-studio.tsを作る

import { defineConfig } from "drizzle-kit";
import { execSync } from "node:child_process";
import { existsSync } from "node:fs";

// D1のローカルSQLiteファイルを動的に検索
function findD1Database(): string {
	try {
		const command = "find .wrangler/state/v3/d1/miniflare-D1DatabaseObject -type f -name '*.sqlite' -print -quit";
		const dbPath = execSync(command, { encoding: "utf-8" }).trim();
		
		if (!dbPath || !existsSync(dbPath)) {
			throw new Error("D1 local database file not found");
		}
		
		console.log(`Found D1 database at: ${dbPath}`);
		return dbPath;
	} catch (error) {
		console.error("Failed to find D1 database:", error);
		console.error("Make sure to run 'pnpm dev' at least once to create the local database");
		process.exit(1);
	}
}

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

この設定ファイルを読み込んでStudioを起動する
drizzle-kit studio --config drizzle.config.local-studio.ts

いしはるいしはる

Braveを使っている場合はシールドをオフにする必要がある