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を使っている場合はシールドをオフにする必要がある